我开始每晚以 cronjob 的方式运行 ntpdate(在两台服务器上)。每天早上我都会收到一封电子邮件告知结果。在一台服务器上,它每天校正大约 0.8 秒,这对我来说似乎相当多。
但在另一台服务器上,它每天校正大约 -4 秒。这听起来像是一个巨大的偏差。这是否表明出了什么问题,例如 BIOS 电池电量不足?(服务器相当老旧。)
谢谢。
答案1
根据我的经验,物理机器上每天几秒钟的时间漂移并不罕见或意外,特别是如果漂移相当稳定(即不是一天 1 秒,第二天 10 秒,第三天 -2 秒,......)。在虚拟机中,如果没有 NTP 这样的时钟管理,时钟每天仅漂移 4 秒就已经是一项了不起的成就。
与其每天使用 ntpdate 跳转一次时间,不如运行它ntpd
并使用其更精细的机制保持时钟同步,这通常是一个更好的主意。常见的“最佳实践”是让一台(或两台)机器与外部时钟源(例如 *.<local>.pool.ntp.org)保持同步,然后将所有其他机器与该时钟源同步 - 这可以减少公共 NTP 服务器的负载(因为只有一台或两台机器与它们通信)并提高机器之间同步的准确性(因为它们与相同的本地源同步)。
如果您在任何 VMWare VM 中使用 Linux 并希望通过 ntp 同步其时间,请确保您使用的是最新的 Linux 内核(具有“无滴答时钟”),VMWare 的时间同步已关闭,并且您已将其置于tinker panic 0
ntpd 配置的顶部,这样即使由于 VM 或主机中的高负载导致时钟偏差突然发生变化,它也不会放弃。我发现这是保持 VM 时钟有序的最可靠组合。
答案2
也许服务器负载过重。另外,如果服务器是虚拟机,那么负载过重可能会导致时间漂移。
答案3
据我所知,系统运行时电池不会影响时钟。BIOS 中的 RTC 通常确实会有很大差异,但这取决于各种因素。Jeff 有之前讨论过这个话题详细。
我记得不久前提到过 CPU 速度步进会导致时钟偏移,但我认为这已经得到了解决。
根据您的系统使用情况(可能是时间关键型应用程序),值得使用 ntpd 来保持一致的内部时钟。
答案4
应尽可能使用 ntpd,ntpdate 可能会导致问题,例如应用程序中出现除以零的错误。
ntpd 不会改变时间,它会加快或减慢时间以达到正确的时间。