これをさまざまなGNU / Linuxインストールでテストしました。
perl -e 'while(1){open($a{$b++}, "<" ,"/dev/null") or die $b;print " $b"}'
システムAおよびD
私がヒットした最初の制限は1024です。これは、/ etc / security / limits.confに次のように置くことで簡単に引き上げられます。
* hard nofile 1048576
次に実行します:
ulimit -n 1048576
echo 99999999 | sudo tee /proc/sys/fs/file-max
テストは1048576に進みます。
ただし、1048576を超える値に上げることはできないようです。limits.confに1048577を入れても、単に無視されます。
何が原因ですか?
システムB
システムBIでは、1048576に到達することさえできません。
echo 99999999 | sudo tee /proc/sys/fs/file-max
/etc/security/limits.conf:
* hard nofile 1048576
ここに私は得ます:
$ ulimit -n 65537
bash: ulimit: open files: cannot modify limit: Operation not permitted
$ ulimit -n 65536
#OK
その制限はどこから来たのですか?
システムC
このシステムには、limits.confに1048576の制限があり、/ proc / sys / fs / file-maxに99999999があります。
しかし、ここでの制限は4096です。
$ ulimit -n 4097
-bash: ulimit: open files: cannot modify limit: Operation not permitted
$ ulimit -n 4096
# OK
それを(少なくとも)1048576に上げるにはどうすればよいですか?
(自己への注意:DOは行いません。echo 18446744073709551616 | sudo tee /proc/sys/fs/file-max
)
1
私はまったく同じ問題を抱えていますが、制限は1048576のようです。続行すると、次のエラーが発生します。bash:ulimit:open files:cannot modify limit:Operation not
—
allowed
こんにちは、私は非常に類似した問題を抱えています。これらのさまざまなシステムの詳細を提供することは非常に役立つと思います。
—
Time4Tea