小编Vas*_*K V的帖子

为什么 file-nr 和 lsof 对打开文件的计数不同?

我突然遇到了一个问题;我所有的应用程序和服务器都运行良好,突然间我看到打开的文件数量猛增。

我正在用这个命令检查它:

cat /proc/sys/fs/file-nr
Run Code Online (Sandbox Code Playgroud)

当我检查它时44544 0 128000,它显示,所以 44544 是打开文件的数量。

但是当我检查这个命令时 -lsof | wc -l 它显示 - 28384。

那么哪个是正确的呢?

我的最大打开文件限制是 65535

ulimit -a
open files                      (-n) 65535
Run Code Online (Sandbox Code Playgroud)

我想知道使用更多打开文件的前 5 个进程。我可以从中得到这个,lsof但这里显示的计数与我上面提到的其他命令有很大不同。

我可以获得此命令计数的进程的详细信息cat /proc/sys/fs/file-nr吗?

根据下面提到的链接,它说我们不能, 如何显示打开的文件描述符但不使用 lsof 命令

有没有适合我的工作?我需要找到哪个进程突然开始使用更多打开的文件。

更新 抱歉各位麻烦。我发现我正在做的错误是我没有从 root 中检查 lsof|wc -l。这就是我看到巨大差异的原因。

file -nr 和 lsof 的输出之间仍然存在差异 | wc -l(从根)。lsof 计数大于文件 -nr 计数。这样做的原因是,文件 -nr 忽略了一些目录(被 lsof 视为文件)我通过对谷歌本身的一些研究发现了这个原因。无论如何!感谢大家的帮助!

linux process open-files

23
推荐指数
1
解决办法
4万
查看次数

标签 统计

linux ×1

open-files ×1

process ×1