You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu Server 22.04.4 LTS时钟漂移及tsc-early时钟源标记不稳定问题求助

Ubuntu Server 22.04.4 LTS时钟漂移及tsc-early时钟源标记不稳定问题求助

看起来你的服务器确实碰到了时钟源不稳定引发的时间漂移问题——从你提供的dmesg日志能明确看到,TSC(Time Stamp Counter)时钟源因为和watchdog的偏差超过阈值(340ms),被系统标记为不稳定,随后切换到了精度更低的refined-jiffies,这正是时间大幅漂移、同步时又突然跳回的核心原因。

下面给你几个针对性的解决步骤,你可以按顺序尝试:

1. 先确认当前使用的时钟源

先搞清楚系统现在用的是哪种时钟源,执行命令:

cat /sys/devices/system/clocksource/clocksource0/current_clocksource

2. 强制切换到更稳定的时钟源

refined-jiffies精度很低,我们可以尝试切换到hpet或acpi_pm这类更稳定的时钟源:

  • 临时生效(重启后失效):
    执行命令切换到hpet:

    echo hpet | sudo tee /sys/devices/system/clocksource/clocksource0/current_clocksource
    

    要是hpet效果不好,也可以换成acpi_pm试试。

  • 永久生效:
    需要修改GRUB配置来固化设置:

    1. 编辑GRUB配置文件:
      sudo nano /etc/default/grub
      
    2. 找到GRUB_CMDLINE_LINUX_DEFAULT这一行,添加clocksource=hpet(比如原来的内容是quiet splash,修改后变成quiet splash clocksource=hpet)
    3. 保存文件后,更新GRUB:
      sudo update-grub
      
    4. 重启服务器,设置就会生效。

3. 优化NTP同步,避免时间突变

默认的systemd-timesyncd处理时钟突变的能力一般,换成chrony能更平滑地调整时间,减少突然跳转的情况:

  • 安装chrony:
    sudo apt install chrony
    
  • 停止并禁用原来的时间同步服务:
    sudo systemctl stop systemd-timesyncd
    sudo systemctl disable systemd-timesyncd
    
  • 启动并启用chrony:
    sudo systemctl start chronyd
    sudo systemctl enable chronyd
    
  • 查看chrony的同步状态:
    chronyc tracking
    
    这样chrony会逐步修正时间,而不是突然把时间拉回正常,能缓解你提到的“时间先漂移到未来再突然回调”的问题。

4. 检查BIOS/UEFI或虚拟机配置

  • 如果是物理服务器:进入BIOS/UEFI界面,找到和时钟相关的选项,比如“TSC Synchronization”(TSC同步)、“High Precision Event Timer (HPET)”,确保这些选项处于启用状态。有些服务器还可能有“Clock Source”相关设置,可以尝试调整为更稳定的选项。
  • 如果是虚拟机:检查宿主机的时钟是否稳定,同时确认虚拟机的时钟同步功能(比如VMware的Time Sync、KVM的时钟配置)已经正确开启。

5. 排查硬件问题

要是上面的方法都没效果,可能是服务器的硬件时钟(RTC)出了问题,比如主板上的CMOS电池没电了——可以尝试更换CMOS电池,再观察时钟稳定性是否改善。

备注:内容来源于stack exchange,提问作者NicoCaldo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 13:19:37