lsof 下应列出多少个打开的文件?

lsof 下应列出多少个打开的文件?

我不是高级 Linux 用户。我有一个运行 CentOS 的 VPS,内存为 768MB。

lsof以 root 身份执行了该命令,发现有一个包含 3000 个文件的列表。通常应该有多少个文件?我的系统变得非常慢,所以这个列表是否太长了?

我如何知道哪些文件需要保留以及哪些文件需要关闭?

我看到有多个相同文件的副本,但 PID 不同。列表中有很多我未打开的日志文件。这是正常的吗?

             total       used       free     shared    buffers     cached
Mem:        104287        492     103794          0          0          0

答案1

如果你的电脑运行缓慢,而你想让你的电脑运行得更快一些,你通常不应该担心 的输出lsof。你应该查看你的进程,看看 (1) 它们正在使用什么以及 (2) 你的内存和 CPU 的当前水平。

如果您经常发现进程消耗 70% 以上的内存,那么可能需要升级了。

答案2

我不会担心打开的文件数量。正如lsof手册页所述,“打开的文件”几乎可以是任何可读的文件、流或设备,因此未过滤的列表可能很长。

打开的文件可以是常规文件、目录、块特殊文件、字符特殊文件、执行文本引用、库、流或网络文件(Internet 套接字、NFS 文件或 UNIX 域套接字)。可以通过路径选择文件系统中的特定文件或所有文件。

如果没有为 指定参数lsof,它会列出所有打开的文件,包括由系统守护程序打开的文件 - 例如您提到的未打开的日志文件。打开文件引用消耗的系统资源非常少,因此这本身不是问题。

我刚刚从 USB 启动了实时 Ubuntu 11.04,lsof显示打开了超过 4500 个文件。

相关内容