Linux:统计进程的打开文件数

Linux:统计进程的打开文件数

我如何检查当前使用了多少个打开的文件?

检查 PM2 只是一个例子:

我找到了PID:

ps aux | grep pm2 | awk '{ print $2 }'

检查打开文件数的限制为 65536 个:

# cat /proc/16305/limits | grep 'Max open files'

最大打开文件数 65536 65536 个文件

此限制通过 systemd 设置:

# cat /etc/systemd/system/pm2.service.d/nofile_limit.conf
[Service]
LimitNOFILE=65536

我知道我可以根据用户检查打开了多少个文件:

lsof -u UserName | wc -l
252

PM2 在与 PM2 不同的用户上运行,当我检查该用户的限制时,它非常小,所以这里有问题......

如果限制由 systemd 设置和管理,我该如何检查当前使用了多少个打开的文件?

当我写这篇文章时,我有了一个想法,也许这可以解决我自己的问题:

lsof | grep ' userName ' | awk '{print $NF}' | sort | wc -l
2348

你怎么认为?

答案1

如果你想检查一个你知道 pid 的进程,请尝试这个

ls /proc/$pid/fd/ | wc -l

相关内容