Red Hat Linux NTP 值不一致

Red Hat Linux NTP 值不一致

最近,我的服务器上出现了 NTP 高延迟和偏移值。

$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*10.161.50.254   .SLK.            1 u  962 1024  377   23.942   -2.157   0.819
+10.147.50.253   .SLK.            1 u 1001 1024  377   26.628    2.991   0.245

但是,当我手动查询同步详细信息时,值却有很大不同。

$ ntpdate -q  10.161.50.254
server 10.161.50.254, stratum 1, offset -0.001250, delay 0.04601
 5 Mar 11:14:37 ntpdate[29876]: adjust time server 10.161.50.254 offset -0.001250 sec

第一个输出延迟大约为 24 秒,而第二个输出延迟不到 1 秒。偏移值也是如此。我想知道哪个输出有效。如果第二个输出更精确,为什么第一个输出显示的结果不一样。谁能解释一下是什么导致了这种差异,哪一个是有效的,我应该参考哪一个?

(我们的服务对时间非常敏感,这样的差异会导致报告异常,例如负的服务使用时长)

答案1

我相信延迟是以毫秒为单位的时间:

http://www.clock.org/ntp/debug.html

该链接详细介绍了如何读取输出。但是,24ms 似乎是正确的,具体取决于您的网络速度。您还需要考虑以下输出ntpdate

https://superuser.com/questions/393426/how-inaccurate-is-my-system-clock-on-unix

该详细信息ntpdate -q以秒为单位进行报告。46 毫秒大约与ntpq -p输出延迟的时间相同。

答案2

正如其他评论和答案所指出的那样,偏移量ntpdate以秒为单位,而ntpq显示以毫秒为单位。因此,您的偏移量没有真正的差异(这是最重要的)。您的时间相当接近同步。但报告的延迟仍然存在差异。

我对我的服务器的延迟进行了一些测试,并得到以下结果:

  • 对等体 1(本地 LAN 上的第 1 层 BeagleBone Black):通过 0.02689 秒ntpdate,通过 0.598 毫秒ntpq,通过 平均 1.032 毫秒-和ping之间的差异:26.292 毫秒ntpdatentpq

  • 对等点 2(距离约 1000 公里的公共层 1 服务器):通过 0.04485 秒ntpdate,通过 18.662 毫秒ntpq,通过 平均 18.379 毫秒-和ping之间的差异:26.188 毫秒ntpdatentpq

  • 对等点 3(跨太平洋的公共 1 层服务器):通过 耗时 0.21938 秒ntpdate,通过 耗时 193.844 毫秒ntpq,通过 平均耗时 207.875 毫秒-和ping之间的差值:25.536 毫秒ntpdatentpq

我的结论是:ntpdate效率有点低,并且平均增加了大约 25-26 毫秒的固定开销(在我的计算机上),并且Linux UDP 堆栈通常比Linux ICMP 堆栈ntpd稍微高效一些。ping

相关内容