为什么我的EC2服务器每天会减少10秒钟的时间?


12

我有一个系统文件,/etc/cron.daily/ntpupdate该文件
ntpdate ntp.ubuntu.com每天运行以与网络时间同步。每天它生成的输出与以下内容非常相似:

/etc/cron.daily/ntpupdate:
16 Jan 06:30:42 ntpdate[21446]:
step time server 91.189.94.4 offset -12.646804 sec

我不太91.189.94.4确定-12.646804 sec这是什么意思,但是我很确定这意味着我的服务器关闭了大约12秒。但我不知道为什么每天都会减少大约相同的金额。这是运行Ubuntu的Amazon EC2实例。

我只能猜测,它每天会丢失/增加12秒,或者其他某事正在将时间与另一个已关闭12秒的时钟同步,然后重新同步它。

我应该怎么做才能进一步追踪?我在/etc/cron.*目录或用户的cron作业中看不到任何其他cron作业...

更新

只是想与我分享我开始每小时运行一次,以查看某个小时是否会有很大的跳跃。这是每小时的输出:

16 Jan 15:17:04 ntpdate[8346]:
adjust time server 91.189.94.4 offset -0.464418 sec

因此,显然每小时的时钟关闭大约半秒,因此每天(24小时)的时钟关闭大约12秒是有意义的。猜猜时钟运行得很快!谢谢!


91.189.94.4是ntp.ubuntu.com的IP地址
Michael Mrozek

点击此链接。您的问题将得到解决。它有助于解决相同的问题docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html

Answers:


13

有许多因素可能会使软件时钟运行得慢或快。虚拟服务器上的时钟特别容易出现这类问题。一天12秒是非常糟糕的,直到您遇到时钟以180–200%速度运行的虚拟盒子!挂起的笔记本电脑上的时钟也可能会遇到计时问题。

你应该考虑删除ntupdate赞成ntpd。软件包名称ntp在Debian上(大概也在Ubuntu上)。NTP守护程序比cron作业更主动地使您的时间同步,与一个或多个其他NTP服务器同步,并使您的时钟更加准确。这是相同协议ntpdate使用的另一种实现,只是ntpd持续监视时间。

如果您不希望的开销(很小)ntpd,则可以考虑ntpdate每小时运行一次。假设您每小时休息0.5秒钟,那就足够了。


3
通过运行无滴答内核(CONFIG_NO_HZ),也可以在很大程度上解决虚拟机问题。不知道使用ubuntu内核是否可行,还是必须构建自己的内核。
Patrick

1
我刚刚在Ubuntu 11安装(3.0.0-14-generic)上检查了内核配置,它肯定已CONFIG_NO_HZ启用。
Alexios 2012年

0

回答问题的另一半,这是为什么发生的:众所周知,计算机硬件时钟不准确,因此,尽管每天偏移12秒是不寻常的,但实际上并不是那么不寻常。

(这可能是由于网络时间的普遍使用,因此与手表中的手表相比,即使每天漂移12秒也是一个小麻烦-因此硬件公司可以使用便宜的时钟芯片。从物理上讲,正在发生的可能是时钟芯片中的振荡器未正确校准,因此它运行缓慢但可靠地慢。)


-1

我怀疑ntp不会更新您服务器的时间,因为差异太小了。我有一个类似的问题,我每天都看到相同的延迟,直到发现有一个特定的阈值,ntp才会有所不同。

检查您的配置以获取最小同步阈值。


3
这不是真的。相反,NTP尝试尽力减少差异。在另一个方向上有一个阈值:如果差异太大(怀疑配置错误,例如时区错误),NTP将不会更新时钟。
吉尔斯(Gillles)“所以-别再邪恶了”
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.