![无法通过 lsof 计算所有打开的文件 + lsof 已挂起](https://linux22.com/image/742300/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%20lsof%20%E8%AE%A1%E7%AE%97%E6%89%80%E6%9C%89%E6%89%93%E5%BC%80%E7%9A%84%E6%96%87%E4%BB%B6%20%2B%20lsof%20%E5%B7%B2%E6%8C%82%E8%B5%B7.png)
我们正在尝试通过 lsof 来计算所有打开的文件
lsof | wc -l
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/42/gvfs
Output information may be incomplete.
但 1 小时后 lsof 仍未重新运行答案(就像卡住了一样)
还有其他方法可以计算所有文件吗?
我们有 redhat 7.2 版本
- 我猜我们也有 CLOSE_WAIT 条目消耗内核内存
其次,我们需要找到哪个应用程序消耗了最多的打开文件,
答案1
使用-b
选项告诉 lsof 不要使用可能阻塞的内核函数。
您可以CLOSE_WAIT
使用以下方式排除套接字-iTCP -sTCP:^CLOSE_WAIT
lsof -b -iTCP -sTCP:^CLOSE_WAIT