我有一个运行 Debian 5 的虚拟服务器,其中任何操作都非常慢(例如通过 SSH 登录或执行 su 时的密码验证)。我检查了平均负载,它徘徊在 1-2 左右。然后我停止了所有我能想到的服务(apache、mysql、postfix 等),平均负载下降到 1.00。但它不会再下降了……
我查看了 top,似乎没有进程异常使用 CPU 或内存。日志文件显示没有异常活动,网络流量似乎正常。
我可以使用哪些其他工具来诊断问题?我如何找出“卡住”的地方?主机是否有可能出现故障?
答案1
我似乎记得曾经有一个服务器出现过类似的问题(负载为 1,但 CPU 不是)。在那个特定情况下,它是由处于“不可中断睡眠”状态的进程引起的。执行 aps aux
并查找 STAT 列中带有“D”的进程。老实说,我对这个问题记不太清楚了,但也许这是您可以用来进一步调查的立足点。
答案2
使用 vmstat 并查看最常用的时间是系统时间、用户时间、等待时间还是窃取时间。
在此之后,更容易找到你的邪恶进程。:D
这是一个很好的解释: http://perumal.org/analyzing-database-server-bottlenecks-using-vmstat/