最大オープンファイル制限はいくらですか?

最大オープンファイル制限はいくらですか?

nofile私はかなり大きなプロジェクトを進めていますが、最近設定を500,000以上に増やす必要がありました。頑張った/etc/security/limits.d/99-users-nofile.confから500万に変更してください。しかし、もはやログインは許可されていません。他の方々も同じ問題に遭遇するのを見て、結局代替メディアからブートして値を再変更してみましたが、まったくわかりません。実際の最大値はいくらですかnofile

答え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

問題なく実行され、600Mファイルが開きます。

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

したがって、実際の制限は明らかに高いです。

関連情報