我如何检查当前使用了多少个打开的文件?
检查 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