为什么 Nethogs 看不到生成某些 NFS 流量的进程的 PID?

为什么 Nethogs 看不到生成某些 NFS 流量的进程的 PID?

我通常使用 Nethogs 来查看每个进程的网络带宽。然而,Nethogs 不会看到生成某些 NFS 流量的进程的 PID,因此它们会聚合在一行上,?PID 如下:

在此输入图像描述

为什么会发生这种情况?是否有任何方法可以规避它,以便我可以看到每个 PID 的 NFS 带宽?

我在 Ubuntu 12.04(客户端)上使用 NFSv3。

答案1

NFS,顾名思义,是一个文件系统。在 NFS 安装目录上打开/读取/查找/写入/关闭文件的用户进程不知道它是 NFS 文件系统,因为内核使 NFS 看起来像任何其他文件系统。

因此,读取 NFS 安装文件的用户进程将生成一个read(2)系统调用,最终导致某些内核代码运行。所有 NFS 流量都来自 Linux/Unix 内核本身,而不是来自用户级进程。因此,“?”作为PID。

相关内容