![为什么服务器上的时钟同步很困难?](https://linux22.com/image/650966/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84%E6%97%B6%E9%92%9F%E5%90%8C%E6%AD%A5%E5%BE%88%E5%9B%B0%E9%9A%BE%EF%BC%9F.png)
这并不是咆哮,只是好奇而已。
计算机一天内真的会漂移超过一秒吗?我简直无法想象。
为什么不每天与时间服务器同步。与服务器之间(相对)一致的时钟的优势相比,这应该具有最小的负面影响。
我的直觉是,最大的问题是延迟,但即使如此,每次同步后也只有几毫秒。我错过了什么?
答案1
计算机一天内真的会漂移超过一秒吗?我简直无法想象。
是的,有些确实如此。尤其是在虚拟化环境中。在虚拟机中运行(就像在 Azure 上一样)会使用于计时的一些基本假设失效,这使其比在物理硬件上更困难。现代计算机比数字时钟复杂得多。
为什么不每天与时间服务器同步。与服务器之间(相对)一致的时钟的优势相比,这应该具有最小的负面影响。
这就是人们所做的。这叫做网络时间协议 (NTP)但即使这样也比你想象的要困难,因为有些服务需要连续时间,因此通过向前或向后跳跃时间来调整时钟是不可接受的,最终会导致系统时钟变慢或加快,而这需要时间。
我的直觉是最大的问题是延迟,但即使如此,每次同步后也只会出现几毫秒的延迟。
NTP 已经尝试调整延迟,并且存在延迟更低的改进版本。