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