时钟源 tsc 不稳定

时钟源 tsc 不稳定

好的,现在我的服务器确实出现故障了;)

启动一段时间后(大约一分钟),我的服务器挂了。我所能做的就是硬重置。然后重启后,在 /var/log/kern.log 中我可以找到:

Jul 29 22:38:57 leonidas kernel: [   90.729598] longhaul: Failed to set requested frequency!
Jul 29 22:38:57 leonidas kernel: [   90.731252] longhaul: Enabling "Ignore Revision ID" option.
Jul 29 22:38:57 leonidas kernel: [   91.201461] longhaul: Failed to set requested  frequency!
Jul 29 22:38:57 leonidas kernel: [   91.201482] longhaul: Disabling ACPI C3 support.
Jul 29 22:38:57 leonidas kernel: [   91.204230] longhaul: Disabling "Ignore Revision ID" option.
Jul 29 22:38:58 leonidas kernel: [   91.416133] longhaul: Failed to set requested frequency!
Jul 29 22:38:58 leonidas kernel: [   91.416152] longhaul: Enabling "Ignore Revision ID" option.
Jul 29 22:38:58 leonidas kernel: [   91.960048] Clocksource tsc unstable (delta = -105611479 ns)

我在网上找到了一些资源,上面说要更改时钟源,或者禁用 ACPI。我尝试禁用 ACPI,但没有帮助(但我注意到挂起之前的时间更长)。我无法将时钟更改为 hpet,因为我的系统没有这样的时钟。

cat /sys/devices/system/clocksource/clocksource0/available_clocksource的输出:
acpi_pm jiffies tsc

我的系统是 VIA Epia 硬件上的 ubuntu 服务器。

答案1

您的 CPU 拒绝与系统合作,因为它试图控制 CPU 的时钟频率。这似乎是某些硬件的一个已知问题;长途某些配置下的驱动程序损坏,这反过来又会导致 CPU 节能问题,也就是 CPU 频率缩放。如果您回头查看原始错误帖子,您可以清楚地看到,尽管长程驱动程序据称“损坏”,但它“仍然完好无损”。您的目标是禁用它或用不同的时钟源覆盖它。

TSC 代表“时间戳计数器”,它应该随着 CPU 的速度不断增加。当 CPU 动态改变频率时,TSC 会“改变”或“偏离”,内核会注意到这一点;因此,内核日志中会出现有关 TSC 的消息。这里的技巧是找到 CPU 频率调节器并关闭该功能,或者始终启用最大 CPU。基本上,您希望 CPU 全速运行,而不进行频率调整。在 Ubuntu 上,这也可能受到 CPU 类型的影响 - 我的个人电脑是较旧的 Athlon XP 机箱,因此它安装了守护程序powernowd来控制 CPU 频率,因为它是 AMD CPU,即使它不能使用这个功能英特尔 CPU 可能使用其他东西,而 VIA 仍然使用不同的东西。您可能希望这样做

apropos power

...并查看手册页中建议使用哪些程序(反过来,这将为您提供一些快速线索,让您知道哪些程序可能是罪魁祸首)。

另一种方法是明确将时钟源设置为acpi_pm,根据您提供的输出,该方法似乎受支持。您也可以尝试,jiffiesacpi_pm可能会得到更好的结果。


一些搜索暗示你可能正在使用基于 VIA 的芯片,这种芯片在处理 CPU 频率调整时偶尔会出现驱动程序问题。由于我不知道您的具体硬件设置,所以我真的不能告诉您更多信息。祝您好运。

相关内容