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
还包括共享库。