19

開いているファイルの最大数を「無限」の値に設定することは可能ですか、それとも数値でなければなりませんか?

デーモン ユーザーの記述子制限を「無制限」に設定する必要があり、それが可能かどうか、またはその方法を決定しようとしています。一部のメーリング リストでは、使用可能な「最大」値について言及しているのを見てきました (「myuser hard nofile max」のように)。

「max」などを使用できない場合は、ファイルの最大数を(理論的に)決定する方法を知りたいので、選択した数の根拠があります。上限を取得するより合理的な方法がある場合は、100000000 などを使用したくありません。

重要な場合は、RHEL 5 を使用しています。

更新:質問を書くことに関しては、私はばかです。理想的には、limits.conf ファイル (「max」の由来) でこれを行いたいと考えています。それは何か答えを変えますか?


コメントありがとうございます。これは JBOSS インスタンス用であり、私が書いているデーモンではないため、setrlimit() が役立つかどうかはわかりません。ただし、Jefromi - 私は無限大の定義が好きです:)ファイル記述子が「2つのショートとポインター」であることを示唆する投稿を見たので、おおよその上限を計算できるはずです。

4

2 に答える 2

39

POSIXでは、を使用するようにリソース制限を設定できRLIMIT_NOFILEます。これが意味するのは、システムがこのリソース制限を強制しないということです。もちろん、実装(例)やその他のリソース制限(例:使用可能なメモリ)によって制限されます。RLIM_INFINITYsetrlimit()MAXINT

更新: RHEL 5のこの制限(in )の最大値は1048576(2 20 )であり、ルートの場合でも、無限大を含むそれ以上の値は受け入れません。したがって、RHEL 5では、この値をで使用できます。これは、無限大に到達するのと同じくらい近い値です。NR_OPEN/usr/include/linux/fs.h/etc/security/limits.conf

少し前に、この制限を無限大に設定できるようにするためにLinuxカーネルパッチが適用されましたが、意図しない結果の結果として元に戻されました

于 2009-07-31T15:06:54.190 に答える