開いているファイルとファイル記述子の数を計算する方法

開いているファイルとファイル記述子の数を計算する方法

Linuxでは、open_filesの数とfile_descriptorsの数の違いは何ですか?混乱しています。 /proc/sys/fs/file-max の値は合計 file_descriptors または総 open_files ですか?全体的に pid の open_files の総数とシステム全体の open_files の総数をどのように計算しますか?

例: mysqld プロセスの場合:

[root@agent]# lsof -p $(pidof mariadbd) | awk '{print $9}' | sort | uniq  | wc -l
75
[root@agent]# ll /proc/$(pidof mariadbd)/fd | wc -l
39

ご覧のとおり、2つの値が異なります。なぜ?

答え1

/proc/PID/fd実際に開いたファイルとソケットのみが含まれています。

lsof共有ライブラリも含まれます。

関連情報