Linuxで開いているファイル記述子の制限を取得することで、私は完全に混乱しています。
どの値が彼らによって正しいですか?
ulimit -n
======> 65535
しかし
vim /etc/security/limits.conf
- ソフトnofile50000
- ハードnofile90000
適用/etc/security/limits.conf
される制限は、PAM構成の一部である場合、ログイン時に制限認証モジュールによって適用されます。次に、シェルが呼び出され、シェルに独自の制限を適用できます。
どちらが有効かを尋ねている場合、それはulimit
呼び出しの結果です。オプションで呼び出されない場合-H
は、ソフト制限が表示されます。
設定の背後にある考え方limits.conf
は、たとえばリモートログインに制限を適用するためのグローバルな場所を持つことです
ファイル記述子などの制限は、ユーザーレベルまたはシステム全体のレベルで設定できます。/etc/security/limits.conf
ここで、ユーザーレベルの制限を設定できます。これは、ユーザーごとに異なる制限である場合もあれば、すべてのユーザーに適用されるデフォルトのみである場合もあります。表示する例には、50000のソフト(〜警告)レベル制限がありますが、90000のハード(絶対最大)制限があります。
ただし、65535のシステム制限が設定されている場合があり、これはユーザー制限よりも優先されます。/etc/sysctl.conf
私のメモリが正しく機能する場合、システム制限はで設定されていると思います。システムによって制限されているかどうかを確認するために、そこでチェックする場合があります。
また、ulimit
コマンドはスイッチを使用して、ファイル記述子のソフト(-Sn)およびハード(-Hn)制限を具体的に表示できます。
このconfは、システム内のすべてのアプリで使用されていると思います. 特定のアプリを変更したい場合は、setrlimit() または getrlimt() を試すことができます。man doc dose はすべてを説明します。