为什么 ps aux 卡住了?

为什么 ps aux 卡住了?

我想知道在我的临时服务器上,每当我运行 ps aux 时,它都会卡住。它会输出一个进程列表并停止响应。我检查了是否有足够的 RAM(1GB)。

当我运行 top 命令时,它看起来没问题,但我怀疑有一个僵尸进程。那是什么?有人能解释一下吗?

top - 11:00:29 up  3:53,  2 users,  load average: 51.75, 50.52, 45.38
Tasks:  79 total,   1 running,  77 sleeping,   0 stopped,   1 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1747660k total,   603572k used,  1144088k free,    12644k buffers
Swap:   917496k total,        0k used,   917496k free,    97732k cached

谢谢

答案1

如果在 Linux 上,运行斯特拉斯附言查看它调用了哪些系统调用,您可能会看到它挂在哪一个系统调用上:

$ strace ps aux

如果你使用其他 Unix 系统,可以使用桁架或者桁架

答案2

考虑到您的负载超过 50,但 CPU 100% 空闲,我会查看 i/o。这看起来像是计算机正在等待磁盘或网络返回数据,然后才能继续。

尝试使用 iotop 查看是什么阻止了此操作。可能是驱动器正在退出。

如果您的计算机配置为针对外部资源执行名称/组解析和身份验证,并且该资源不可用,则也可能出现类似行为。在这种情况下,检查您的 PAM 配置和任何相关服务(如 DNS、LDAP、NIS)会有所帮助。

答案3

答案4

哇,从你的顶部输出来看,你的负载高得离谱。除非你的系统有 50+ CPU,否则这太高了。但是 CPU 什么也没做:

Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

这听起来像是硬件问题。 的输出dmesg告诉您什么?

相关内容