我在 Linux 上看到名为“[123.45.78.901-ma]”的进程,其中数字是我们的 NFS 服务器的 IP 地址。有谁知道这些过程是什么,我可以在哪里找到有关它们的信息,或者用于搜索网络的好关键字?
背景:
我看到一台机器上的进程,其中 NFS 正在发生一些奇怪的事情 - 某些东西似乎陷入了循环,发出大量 NFS 请求(读取、更新和 authrefrsh),但所有明显的候选者(如用户程序)都可能会因此而被杀。
相关机器上存在大量[123.45.78.901-ma]
进程(在很短的时间内),但在正常运行的机器上却没有(至少持续时间不够长,不足以让我检测到它们)。
因此,这些进程似乎以某种方式参与了该问题,但我不知道如何参与。
我在寻找“不间断睡眠”进程时发现了它们,通过
while [ 1 ] ; do ps -w -w -e -o pid,state,tname,time,args| grep ' D ' | grep -v grep; sleep 0.1; done
系统详细信息:
红帽企业 Linux 工作站版本 6.3(圣地亚哥)
Linux [...] 2.6.32-279.5.1.el6.x86_64 #1 SMP 7 月 24 日星期二 13:57:35 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
提前致谢!
答案1
这些内核线程很可能是 NFS 挂载助手,仅在客户端上挂载新的 NFS 挂载时才会出现。
如果您可以在它们处于不间断睡眠状态时查看,您可以看到它们正在睡觉/proc/<pid>/stack
,这可以回溯它们正在做什么。不过,这将需要 root 权限,从您对其他答案的评论来看,在这种情况下您没有 root 权限。
如果您在此主机上看到这些内核线程,但没有看到以类似方式设置的其他内核线程,则这意味着该主机上的 RPC 调用性能由于某种原因低于其他主机。也许还有其他网络问题导致出现此问题?
作为信息,我在调查挂在其他工作主机上的 NFS 安装时也有类似的发现。就我而言,这似乎是由于主机当时运行的特定内核版本中的内核错误导致[123.456.78.90-ma]
内核线程永久陷入不可中断的睡眠状态。
答案2
在 Linux 上,ps
在方括号中报告内核线程。这些不是正常意义上的“过程”。也就是说,没有从磁盘加载的可执行文件来启动它们,它们不属于普通用户,等等。它们只是内核在后台进行的众多事情之一。
因此,显示的名称ps
不必与硬盘上的任何文件相对应。 (如果是僵尸进程,不过,确实如此。)