首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >系统时钟漂移过大?(每小时2+分钟)

系统时钟漂移过大?(每小时2+分钟)
EN

Ask Ubuntu用户
提问于 2018-03-12 19:25:05
回答 1查看 3.9K关注 0票数 2

我正在一个新系统上运行一个合理的新安装17.10 (完全修补,而不是虚拟化),并注意到/proc/stat's btime条目中列出的启动时间一直在变化。这破坏了一些脚本,这些脚本使用这些信息来计算启动某些进程的挂钟时间。

通过一些调试,我发现btime被计算为now() - uptime,而btime漂移是由于系统时钟以与正常运行时间时钟不同的速度递增的!

我认为这是由于systemd-timesyncd.service (即ntpd替换)应用于系统时钟的某种时钟循环造成的,因此我禁用了timesyncd并重新启动,作为测试。果然,现在正常运行时间计数器和系统时钟的步数是一样的。(我还安装了adjtimex来检查内核参数,以验证是否存在时钟延迟:不存在frequency偏差,tick值为10000,这是应该的。)

然而,如果没有timesyncd,很明显,系统时钟是非常不正常的。这个时钟在135分钟(~ -37000 ppm)的过程中损失了大约5分钟,这与我在大约20分钟内使用adjtimex -l -w手工估计系统时钟漂移的过程类似(它给出了-40000 ppm)。(事实上,为了检查一下,使用秒表,我发现/proc/uptime也在以错误的速度递增;~ -41000 ppm。所以这是一致的。)

CMOS时钟也有点偏离(它比135分钟增加了30秒),但我的理解是,这不应该影响系统时钟,只有在启动时间。没有一个/etc/adjtime文件,我可以找到在启动时系统时钟速率将被改变-无论如何,正如上面的adjtimex报告,没有时钟滴答伪造。所以我无法想象CMOS时钟会如何引起我看到的系统时钟的问题。

尽管如此,我将更换CMOS电池,因为一些报告建议这可以奇迹般地解决系统时钟问题。(尽管没有明显的机制来实现这一目标。)

但是,对于为什么系统时钟会如此错误,还有其他解释吗?对于系统计时器数量如此庞大这一事实,有什么解决办法吗?显然,仅仅运行timesyncd并不能解决问题,因为它产生的过多时钟会产生问题(如上面所示)。

我可以使用adjtimex直接更改内核参数(这至少应该保持正常运行时间和系统时钟计数器的同步),但这实际上是为了解决+- 500 ppm范围内的时钟错误。我看到的是3个数量级的大,我不知道它是否表明了一些更重要的问题。

作为记录,我在一台非常相似的机器上安装的17.10设备没有这个问题。

更新:改变CMOS电池没有任何作用(如怀疑)。问题的最终解决办法见下文。

EN

回答 1

Ask Ubuntu用户

发布于 2021-02-11 13:29:02

解决此问题的最佳解决方案是(如果本地连接的话)安装locally服务器和pur服务,在一个无限循环中重新启动NTP,睡眠时间约为30秒。通过在"/etc/init.d/rc.local“文件中编写代码。重新启动系统的时间将与服务器计算机同步。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1014285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档