我想知道在我的临时服务器上,每当我运行 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
告诉您什么?