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
したがって、実際の制限は明らかに高いです。