Linuxの場合-最大オープンファイル数を無制限に設定します。可能?
質問
開いているファイルの最大数を<!> quot; infinite <!> quotに設定することは可能ですか?値または数値でなければなりませんか?
デーモンユーザーの記述子制限を<!> quot; unlimited <!> quotに設定する必要がありました。そして、それが可能かどうか、またはそれを行う方法を判断しようとしています。いくつかのメーリングリストが<!> quot; max <!> quot;を参照しているのを見てきました。使用できる値(<!> quot; myuser hard nofile max <!> quot;のようですが、これまでのところ私が相談したmanページとリファレンスはそれをバックアップしません。
「max」などを使用できない場合、ファイルの最大数を(理論的には)決定する方法を知りたいので、選択した数には何らかの根拠があります。上限を取得するためのより合理的な方法がある場合は、100000000などを使用したくありません。
重要な場合はRHEL 5を使用しています。
更新:私は質問を書くことに関してはばかです。理想的には、limits.confファイル(これは<!> quot; max <!> quot;の元になります)で行いたいと思います。それは答えを変えますか?
コメントをありがとう。これはJBOSSインスタンス用であり、私が書いているデーモンではないため、setrlimit()が役立つかどうかはわかりません。しかし、Jefromi-私はInfinityの定義が好きです:)ファイル記述子が<!> quot; 2つのショートとポインタ<!> quot;であることを示唆する投稿を見ました。だから、おおよその上限を計算できるはずです。
解決
POSIXでは、を使用して、RLIMIT_NOFILE
リソース制限をRLIM_INFINITY
に設定できます。 setrlimit()
。つまり、システムはこのリソース制限を強制しません。もちろん、実装(例:MAXINT
)およびその他のリソース制限(例:利用可能なメモリ)によって制限されます。
更新: RHEL 5には、この制限(NR_OPEN
内の/usr/include/linux/fs.h
)の最大値1048576(2 20 )があり、それ以上の値は受け入れません。ルートであっても、無限大を含む値。そのため、RHEL 5では、この値を/etc/security/limits.conf
で使用できます。これは、無限大に近づくのと同じです。
少し前 Linuxカーネルパッチは、この制限を無限に設定できるように適用されましたが、意図しない結果の結果として元に戻された。
他のヒント
ラインを試す
<domain> -
<domain>
をユーザー名に置き換える(最も単純な場合)。
- for enforcing both soft and hard resource limits together. Note, if you specify a type of '-' but neglect to supply the item and value fields then the module will never enforce any limits on the specified user/group etc. .