ulimitの修正:ファイルを開く:制限を変更できません:操作は許可されていません


13

これをさまざまな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

回答:


4

それ/etc/ssh/sshd_configが含まれていることを確認してください:

UsePAM=yes

そしてそれ/etc/pam.d/sshdは含んでいます:

session    required   pam_limits.so

1048576が最大である理由に対する答えはまだありません。

1048576はプロセスごとのようです。したがって、複数のプロセスを使用することで、この制限を克服できます。


4
これが実際にあなた自身の問題の解決策であった場合、問題と上記の解決策との間の関係をさらに描くことは良いことだと思います。
ジェフシャラー

2
Re:1048576(参照用に2 ^ 10 * 2 ^ 10 = 1024 ^ 2)。:ここでこの答えではいくつかの関連情報があるかもしれませんstackoverflow.com/a/1213069/2320823
saladi

1
sshはそれと何をしているのですか?
Linas

@Linasに同意します。申し訳ありませんが、回答と質問のリンクは不明です。
Time4Tea
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.