系统挂起可能与“clocksource tsc unstable”有关?

时间:2012-12-10 07:54:22

标签: linux linux-kernel

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

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

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

这是内核错误吗?或者acpi_pm clocksource是一个问题?

编辑1:在git log搜索当前Linux内核树中与“clocksource”相关的所有新更改后,发现有关clockources的大量更改。这很难找到可能适用于我的问题的现有修复。

编辑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 unstable”之外没有其他异常消息。 “tsc”日志在特定引导会话期间发生一次,并且在每种情况下,挂起发生在安装“acpi_pm”clocksource之后。有些服务器启动了很多~16天,在安装“acpi_pm”后的1到13小时内服务器挂起。其他服务器没有显示此消息并且没有挂起..你是对的它不是决定性的但是我一直在根据猜测挖掘这个方向..

有人对此有所了解吗?

1 个答案:

答案 0 :(得分:4)

(我真的不喜欢通过水晶球调试,但我会试一试......)

几点注意事项:

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

  2. 你没有提到你究竟是如何完成时钟和时间的。作为您的嫌疑人的计时系统 - “在几个小时内”并不是确切的证据。您是否排除了硬件问题(包括电源波动)?您还排除了什么以及为什么?

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

    kernel: Marking TSC unstable due to TSC halts in idle
    
  4. 您正在使用一个非常老的内核 - 在调整时间时,已经有几个与内核锁定相关的修复,例如现在着名的June 30, 2012 leap second issue

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