Каков максимальный лимит открытых файлов?

Черпая вдохновение из:https://stackoverflow.com/questions/15430877/bash-xargs-passing-variable

Даже если это немного -притянуто за уши, это работает:

echo "0x1a" |  xargs sh -c 'perl -le "print hex(\"$1\");"' sh
26

1
25.10.2018, 06:20
1 ответ

В моей Ubuntu 20.04 ограничение для nofileсоставляет (2^20):

*                hard    nofile          1048576

Как ни странно, если я добавлю 1, число упадет до 524288 (2^19 ).

Это ограничение для каждого процесса. Общий лимит для всех процессов 2^63 -1:

$ cat /proc/sys/fs/file-max
9223372036854775807

Количество открытых в данный момент файлов — это первый столбец:

$ cat /proc/sys/fs/file-nr
74144   0       9223372036854775807

На моем сервере я запустил:

ulimit -n 1048576
open_files() { perl -E 'for(1..'$1') { open($f{$_},"<","/dev/null") || die $_;} say "Done"; sleep 10000'; }
export -f open_files
seq 20000 | time parallel --nice 10 -uj0 open_files 30000

Запускается без проблем и открывает 600 М файлов:

$ cat /proc/sys/fs/file-nr
600320672       0       9223372036854775807

Таким образом, практический предел явно выше.

-1
21.12.2020, 22:38

Теги

Похожие вопросы