我的 RHEL5 工作站最近开始出现“故障”。大约每三十秒,它就会完全停止执行约 4 秒钟。在此期间似乎什么都没有运行。长期进程似乎赶上了它们的输入,但新进程根本无法启动。
具体例子:
我在 shell 中运行这个循环:
while date; do sleep 0.2 done
输出仅仅跳过丢失的秒数:
Fri Aug 13 15:20:29 EDT 2010 Fri Aug 13 15:20:29 EDT 2010 Fri Aug 13 15:20:29 EDT 2010 Fri Aug 13 15:20:30 EDT 2010 Fri Aug 13 15:20:30 EDT 2010 Fri Aug 13 15:20:30 EDT 2010 Fri Aug 13 15:20:30 EDT 2010 Fri Aug 13 15:20:34 EDT 2010 Fri Aug 13 15:20:34 EDT 2010 Fri Aug 13 15:20:35 EDT 2010 Fri Aug 13 15:20:35 EDT 2010 Fri Aug 13 15:20:35 EDT 2010
如果在终端(本地控制台或通过 ssh 或 telnet 进行远程输入)中输入内容,echoback 会在无响应时间内暂停,但当它再次开始响应时就会恢复,显然没有输入丢失,只是滞后。
ping
在无响应时间内没有得到答复,但回来时会得到答复:64 bytes from xxx: icmp_seq=1911 ttl=64 time=0.203 ms 64 bytes from xxx: icmp_seq=1912 ttl=64 time=0.199 ms 64 bytes from xxx: icmp_seq=1913 ttl=64 time=3202 ms 64 bytes from xxx: icmp_seq=1914 ttl=64 time=2196 ms 64 bytes from xxx: icmp_seq=1915 ttl=64 time=1197 ms 64 bytes from xxx: icmp_seq=1916 ttl=64 time=195 ms 64 bytes from xxx: icmp_seq=1917 ttl=64 time=0.201 ms 64 bytes from xxx: icmp_seq=1918 ttl=64 time=0.206 ms
这似乎意味着它实际上在无响应期间接收输入,因为那些 ICMP 数据包没有被重新传输。
vmstat 1
输出也延迟了,但没有赶上。就好像那几秒钟没有发生一样。它还显示等待进程的数量有所增加,中断和上下文切换的数量有所下降:procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 132 3111220 305540 588012 0 0 0 0 1035 151 1 1 99 0 0 0 0 132 3111096 305540 588012 0 0 0 0 1019 125 0 0 99 0 0 0 0 132 3111220 305540 588012 0 0 0 44 1034 154 0 1 99 0 0 1 0 132 3111096 305540 588012 0 0 0 0 1016 131 0 0 99 0 0 6 0 132 3111096 305540 588012 0 0 0 0 417 82 0 0 100 0 0 0 0 132 3111220 305540 588012 0 0 0 0 1041 155 0 1 99 0 0 0 0 132 3111096 305540 588012 0 0 0 0 1019 123 1 1 99 0 0 0 0 132 3111220 305540 588012 0 0 0 0 1032 142 0 1 99 0 0 0 0 132 3111096 305544 588008 0 0 0 44 1019 134 0 0 99 0 0
重启可以让问题暂时消失。最近一次花了六天才恢复。我不确定这是否一致。
我最初怀疑问题可能与 nVidia 视频驱动模块有关,但我关闭了 X Windows 并删除了该模块,但症状并没有改变。
dmesg 或 /var/log/messages 中没有任何内容与故障相关或以任何方式与故障相吻合。这似乎不是硬盘的问题,因为如果是硬盘问题,我预计 iowait 会在无响应期间突出,但事实并非如此。这不太可能是硬件问题,因为故障非常有规律。我无法将它们计时到毫秒,但它是一个相当一致的 30/4/30/4/30/4。
有任何想法吗?
答案1
我的钱还是花在硬盘故障上。我的个人 Windows 台式机也发生过类似的事情。甚至一台旧的 Sun 机器也出现过类似的冻结问题。但是,我不会声称我对这个问题进行了深入研究,以注意到休眠外壳中的秒数下降。无论如何,您可能想看看是否可以从 RAID 控制器中获取任何信息,或者以其他方式排除硬盘。
答案2
我的服务器也出问题了。我找到了这个工具:http://www.latencytop.org/。不幸的是,我的打嗝并不经常发生。