我有一个 Debian 6 Xen 客户机,它似乎时不时地进入睡眠状态。它会随机地停止响应任何网络请求(HTTP、ssh、ping),并且只有在我们登录控制台时才会恢复活动。服务器显然没有崩溃,但是在此期间睡眠没有任何活动发生的时间,甚至在此期间所有日志(syslogd 和 klogd)都保持空白。
根据发生的时间以及我们实际登录控制台的时间,这种模式可能需要几分钟,有时甚至一个小时。这种行为不定期发生,大约每月一次,随机发生。
我自己无法访问控制台或 Xen 主机,但托管公司的支持团队表示没有发现任何可疑情况。他们说这是其基础设施上唯一出现此行为的客户端。
客户机运行由托管公司编译的 Linux 2.6.29.6 内核,具有 2 个核心、4 GB RAM 和 2 GB 交换空间。5 分钟平均负载不低(介于 2 和 3 之间,峰值高达 5),但交换活动较少(swapin/swapout),交换空间几乎未使用。日志中未发现内核消息,dmesg 输出中也未发现任何内核消息。
该服务器运行的是常规 apache + mod_php 和 proftpd,真的没什么特别的。据我所知,我们没有调整内核的任何时钟相关参数(但是我不确定如何检查内核设置是否激活了节能模式或时钟步进)。
我们已经找不到问题出在哪里的线索了。
编辑:我尝试find /var -mmin -beforeevent -mmin +afterevent
查找上次服务器挂起期间被修改的文件,结果发现所有文件都是在事件发生前或事件发生后被修改的,中间没有修改,即使挂起时间长达 1 小时。此服务器只有一个分区,因此并不是只有包含 /var 的磁盘发生故障。
我在同一个子网上还有其他主机,它们都认为该服务器处于离线状态:snmp 轮询失败,并且没有在 DB 主机上运行的任何 PHP 应用程序记录任何请求睡眠服务器。
我们还尝试设置一些 cronjob 来执行持续的活动(例如持续 ping 其他主机),但这并没有阻止该服务器进入此状态睡觉模式。
答案1
无论如何,我怀疑这个问题与没有 ntpVM 中的使用情况。VM 时间偏离主机时间,可能导致服务器进入睡眠模式。
安装并使用 ntpd 后,我再也没有遇到过类似的问题。但是,我不再有这台服务器,而且很长时间没有启用 ntp 了(只有 2 或 3 个月)。因此,我不能说这是解决这个问题的正确方法。