オープンファイルハンドル

オープンファイルハンドル

ループ内で複数のプロセスを作成すると、開いたファイルハンドルの最大数に達し、forループが中断されます。

オープンファイルハンドルを使用して計算すると、次のような結果がlsof得られます。

$ lsof | wc -l
1464377

ただし、小切手は以下をfs.file-nr返します。

$ sysctl fs.file-nr
fs.file-nr = 35328      0       6553201

最初の数字は1464377になると予想しました。

質問がいくつかあります:

  1. lsof(1464377) と file-nr(35328) 出力の違いは何ですか?

  2. 最大値は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

おすすめ記事