如何计算打开文件数和文件描述符数

如何计算打开文件数和文件描述符数

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

正如你所看到的,两个值是不同的。为什么 ?

答案1

/proc/PID/fd仅包括实际打开的文件和套接字。

lsof还包括共享库。

相关内容