我正在排除网络上的延迟网络问题。这可能是网卡或电缆问题,但在我解决问题的过程中,我正在查看 ping 数据包离开网卡并到达另一台服务器的时间。两者都是 Linux。
因此,我在两者上都运行了 tcpdump,并从其中一个向另一个发出 ping 操作,然后再返回,查看时间差异可能会揭示延迟的来源。
现在这是一个学术练习,因为我需要消除一些更根本的原因,但我很好奇如何实现这一点。鉴于 ntpd 已安装并运行在两台服务器上,我如何确认两台服务器之间的当前时间差异,尽可能精确 - 考虑到我们讨论的是本地局域网上的延迟,理想情况下是一毫秒左右。
在良好的条件下,NTP 本身可以精确到几毫秒,而且由于两台服务器处于同一环境中,它们(大概)应该达到相似的精度水平,因此它们之间的时间差异应该只有几毫秒——但我该如何检查呢?
答案1
如果两个服务器是 NTP 对等体,则使用
ntpq -p
这将显示当前偏移量
请注意,NTP 会考虑网络延迟。如果您知道每台服务器与通用 NTP 服务器的偏移量,那么使用标准工具获得的偏移量就和您能获得的偏移量差不多了。
更新
我有两个使用 NTP 的 unix 服务器。让我们看看它们保持什么样的时间:
$ sudo /usr/sbin/ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
hufu.ki.iif.hu 185.219.2.214 2 u 12 64 1 71.755 -0.073 0.001
web.puflet.info 188.138.107.156 3 u 11 64 1 78.248 0.417 0.001
84.2.44.19 10.20.75.140 2 u 10 64 1 74.721 -1.076 0.001
$ sudo /usr/sbin/ntpq -p otherbox
remote refid st t when poll reach delay offset jitter
==============================================================================
+ntp2.exa-networ 195.66.241.10 2 u 799 1024 377 43.405 7.796 218.471
+mantaray.netine 249.240.53.144 3 u 289 1024 377 34.782 8.484 212.631
*rilynn.me.uk 81.2.117.228 2 u 765 1024 377 45.665 6.804 142.023
+ntp.thirdlight. 193.67.79.202 2 u 791 1024 377 38.322 9.871 223.397
他们使用不同的服务器,因为他们使用来自 ntp 池的服务器。
我会暂时将 otherbox 添加到此服务器的配置中,这样我就可以直接测量时间偏移
$ sudo vi /etc/ntp.conf
(added `server otherbox`)
$ sudo /sbin/service ntpd restart
$ sudo /usr/sbin/ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
gamma.h3x.no 78.70.33.22 3 u 4 64 1 34.840 -0.964 0.001
web.puflet.info 188.138.107.156 3 u 3 64 1 78.148 -1.243 0.001
alpha.rueckgr.a 129.69.1.153 2 u 2 64 1 61.495 -2.362 0.001
otherbox.exampl 60.155.73.34 3 u 1 64 1 0.604 -11.286 0.001
看起来我的两台服务器上的时间戳相差约 11 毫秒。
答案2
ntpdate -q
做你想做的事。
例子:
root@host1:~# ntpdate -q host2
server host2, stratum 4, offset 109.584520, delay 0.77560
17 Apr 21:48:16 ntpdate[28849]: no server suitable for synchronization found
在这种情况下,服务器之间的时间相差大约为110秒。
答案3
您还可以在 host1 上执行以下操作:
root@host1# clockdiff -o host2