ulimitと最大ファイル制限

ulimitと最大ファイル制限

誰かがLinuxでファイルを開くときの制限を説明できますか?問題は、私のアプリケーションの1つが「開いているファイルが多すぎます」と報告していることです。

私は持っています

ulimit -n
1024

しかし、

cat /proc/sys/fs/file-max
6578523

そして

cat /proc/sys/fs/file-nr
1536

したがって、すでに1536> 1024があります。ulimit -nそれは何ですか?これはとても混乱しています。

答え1

ulimit各プロセスの最大値を表示します。以下の2つのファイルは/procシステム全体の数字を示しています。


~からサーバー障害:

file-max増加せずにプロセスを超えることができないカーネルレベルで適用される最大ファイル記述子(FD)。プロセスレベルで実施されulimit、これはfile-max

~からhttp://www.linuxvox.com/post/what-are-file-max-and-file-nr-linux-kernel-parameters/:

それは何ですかfile-max?これをどの程度調整する必要がありますか?Linux文書定義は、file-maxLinuxカーネルが割り当てるファイルハンドルの最大数を表します。

[...]

サーバーがこの制限に達しようとしているかどうかはどうすればわかりますか?実行コマンド: cat /proc/sys/fs/file-nr。割り当てられたファイルハンドルの数、割り当てられているが未使用のファイルハンドルの数、最大ファイルハンドルの数を表す3つの値を返します。これはfile-nr調整可能なパラメーターではありません。参考用です。私のサーバーでは、次のものが返されます3488 0 793759。これは、現在私のサーバーに793,759の割り当て制限のうち3488しか割り当てられておらず、現在この制限に達するリスクがないことを意味します。

関連情報