0

我们有六台服务器在运行几天后随机挂起。检查消息日志我观察到他们都有“clocksource tsc不稳定”然后“时间:acpi_pm clocksource已安装”。所有这些消息都发生在我们的一个应用程序调整系统时间的时刻,该应用程序偶尔会保持服务器时间与远程系统同步。在每种情况下,服务器都会在安装“acpi_am”时钟源后的几个小时内挂起。

我们使用 stime() 函数直接设置系统时间。

我是这种调试的新手,但我试图通过阅读 tsc.c 源代码来了解它。我们的内核版本是 2.6.23.8,cpu 是 Intel Core 2 Quad Q9400。

这是内核错误吗?还是 acpi_pm 时钟源有问题?

编辑 1:在 git log 搜索当前 Linux 内核树中与“clocksource”相关的所有新更改之后,结果发现关于时钟源的更改数量巨大。这看起来很难找到可能适用于我的问题的现有修复程序。

编辑 2:看起来我没有 HPET

cat /sys/devices/system/clocksource/clocksource0/available_clocksource  
tsc acpi_pm jiffies 

编辑 3:谢谢@thkala。“挂起”的描述:我仍然可以 ping 服务器。使用 telnet 我仍然可以探测到 21、80 等公共端口仍然打开。但是 SSH、VNC 会“挂起”(服务器没有响应)。将监视器连接到服务器,可以用鼠标光标看到 GUI,但屏幕只是冻结在同一画面上。连接usb光电鼠标到服务器,红灯闪烁一次,完全变暗。连接usb键盘,caplock numlock全部不亮。

编辑4:至于证据。@thkala 真的有一个很好的观点。在强制它们关闭并重新启动后,我检查了所有 5 台服务器的消息“挂起”问题,除了“clocksource tsc 不稳定”之外没有其他异常消息。“tsc”日志在特定的引导会话期间发生一次,并且在每种情况下,挂起都发生在安装“acpi_pm”时钟源之后。一些服务器运行了很多~16 天,在安装“acpi_pm”后的 1 到 13 小时内,服务器挂起。其他服务器没有显示此消息并且没有挂起..您是对的,这不是决定性的,但我一直在根据猜测朝这个方向进行挖掘..

有人对此有任何想法吗?

4

1 回答 1

4

(我不太喜欢通过水晶球进行调试,但我会试一试......)

几点注意事项:

  1. 您没有在问题的上下文中指定“挂起”的确切含义。内核是否完全停止 - 还是只是您的应用程序?它会达到 100% CPU 并留在那里吗?它对任何刺激都有反应吗?出现问题时是否有任何相关的控制台消息?

  2. 你没有提到你是如何最终将时钟和计时系统作为你的嫌疑人的—— “在几个小时内”并不是完全可靠的证据。您是否排除了硬件问题(包括电源波动)?你还排除了什么,为什么?

  3. 不稳定的时钟源比你想象的更常见——来自我自己的系统:

    kernel: Marking TSC unstable due to TSC halts in idle
    
  4. 您正在使用一个非常旧的内核 - 有几个与调整时间时内核锁定相关的修复,例如现在著名的2012 年 6 月 30 日闰秒问题

  5. 您似乎患有NIH 综合症- 使用自定义应用程序进行时间同步而不是NTP听起来像是灾难的秘诀......

于 2012-12-10T09:54:58.833 回答