LINUX.ORG.RU
ФорумTalks

[вещества]Что будет, если открыть одновременно больше 2147483645 файлов?


0

1

Вот собственно вопрос: файловый дескриптор- это ведь значение типа int? 3 значения зарезервированы: 0- stderr, 1- stdout, 2- stdin . Что будет, если открыть больше 2147483645 файлов, кроме этих трёх потоков ввода- вывода? Тогдаведь по идее, значения типа int будут исчерпаны? Что произойдёт, короче говоря?

★★

Твой компьютер сколлапсирует =)

suxov ★★ ()

Новый файлы открываться не будут, видел дцать раз.

И int оно исчерпает гораздо раньше, ибо поу молчанию в Линуксе есть ограничение всего в 1024 fd на процесс.

tempuser002 ()
Ответ на: комментарий от Dorif

>И как это будет выглядеть в масштабах системы? Kernel panic? Или гухой зависон без паники?

Зависит от реализации конкретной системы. Скорее всего будет выкинуто сообщение о невозможности открыть файл

DNA_Seq ★★☆☆☆ ()
Ответ на: комментарий от different_thing

>В любом случае ей можно SIGKILL послать, я думаю

Не получится - kill то не запустишь. Если только все убивать - с помощью Sys RQ

ttnl ★★★★★ ()

А вы проверьте: запустите 10453 процесса и откройте в каждом по 205437 файлов (вроде бы, ограничение именно такое) :) Думаю, у вас произойдет глобальное зависание уже на тысячном процессе ;)

Eddy_Em ☆☆☆☆☆ ()

# sysctl kern.maxfiles=21474836450
kern.maxfiles: 2147483645 -> 2147483647

таки 2147483647 для него максимум :)
думаю паники не будет, но новые файлы открывать будет нельзя.

Komintern ★★★★★ ()
Ответ на: комментарий от lambrianov

ТС вообще это делать не собирается. Никогда. Просто интересно.

Dorif ★★ ()

собстно а почему бы взять и не проверить? :).

true_admin ★★★★★ ()

прорвется брешь в пространственно-временном континууме и тебя туда засосет. И будешь ты болтаться без времени и пространства, неистово мучаясь в агониях всего мира.

Zhbert ★★★★★ ()
Ответ на: комментарий от anotheranonymous

> Нормальные шеллы имеют встроенный kill на этот случай.

Поподробнее пожалуйста.

Rubystar ★★ ()
Ответ на: комментарий от anotheranonymous

даже такой быдлокодер как я проверяет открылся ли файл

Loki13 ★★★★★ ()

> [вещества]Что будет, если открыть одновременно больше

Должно отпустить

Led ★★★☆☆ ()

да постоянно такое бывает на серверах. апач начинает какать ошибками вот и всё. всё, что завсит от создания файлового дескриптора начинает либо глючить и сыпать ошибками о невозможности создать файл либо просто не работает.

ArtemZ ()

RTFM!

Сначала наступит EMFILE (тюнится ulimit -n), потом ENFILE. Когда именно наступит ENFILE не знаю.

linuxfan ()

У меня получилось открыть чуть меньше 5,5M файлов, дальше начался ENOMEM
. Памяти 2Гб, 2.6.32-5-686.

cobold ★★★ ()
Ответ на: комментарий от cobold

Хм, размер одного файла(по минимуму)- 4 килобайта. ибо таков размер кластера большинства ФС и соответственно минимальный объём памяти, занимаемой файлом в RAM. Всё правильно. А если бы памяти было бы больше 2 гигов? Например, террабйт? Удалось бы осуществить сие грязное дело до конца?

Dorif ★★ ()
Ответ на: комментарий от Dorif

5,5M x 4Kb даёт 21Gb. Размер ядерной структуры file 128 байт, + inode 96 байт. Размер памяти, которую может использовать ядро под свои нужды по дефолту 1Gb.

cobold ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.