ループ内で複数のプロセスを作成すると、開いたファイルハンドルの最大数に達し、forループが中断されます。
オープンファイルハンドルを使用して計算すると、次のような結果がlsof
得られます。
$ lsof | wc -l
1464377
ただし、小切手は以下をfs.file-nr
返します。
$ sysctl fs.file-nr
fs.file-nr = 35328 0 6553201
最初の数字は1464377になると予想しました。
質問がいくつかあります:
lsof(1464377) と file-nr(35328) 出力の違いは何ですか?
最大値は6553201のように見え、これは非常にランダムなようです。この数字の最大値はいくらですか?
ベストアンサー1
~によるとman lsof
開くファイルは、汎用ファイル、ディレクトリ、ブロック特殊ファイル、文字特殊ファイル、実行可能テキスト参照、ライブラリ、ストリーム、またはネットワークファイル(インターネットソケット、NFSファイル、またはUNIXドメインソケット)です。パスごとにファイルを選択するか、ファイルシステム内のすべてのファイルを選択できます。
したがって、入力行の数がlsof
実際のファイル記述子より多い可能性があります。
次の関連質問をご覧ください。https://serverfault.com/questions/485262/number-of-file-descriptors- Different- Between-proc-sys-fs-file-nr-and-proc-pi