Ubuntu

Unix 時間戳偏差

  • February 25, 2011

我有兩台 Ubuntu 伺服器,它們每晚都會將它們的時間戳同步到 europe.pool.ntp.org。就在它們同步之前,我可以看到兩台伺服器之間的差異為 4 秒。其中一台伺服器似乎在 24 小時內偏離了 4 秒。

  • 是硬體問題還是軟體問題?
  • 除了每天同步幾次之外,有沒有辦法糾正這個問題?
  • 如果唯一的解決方案是更頻繁地同步,那麼伺服器是否有任何影響?

謝謝,奧利維爾

時鐘漂移絕對是電腦上計時的正常部分,但發生多少漂移的細節可能是許多不同事物的函式。在“異常大”偏差的情況下,原因可能是低質量硬體時鐘到高使用率的系統。因此,讓自己與外部、規範的時間伺服器保持同步是非常重要的一步。

最好的設置是使用 ntpdate 在啟動時硬設置時間,然後使用 ntpd 來解決時鐘偏差。過去我聽到過有關 ntpd 資源匱乏的抱怨(我無法準確地說出這種說法,只是我經常聽到抱怨),但現代實現幾乎不引人注意。ntpd 真正的優雅在於兩個要點:

  • 它將隨著時間的推移監控時鐘偏差,以確定您的時鐘漂移的速度並相應地調整其輪詢頻率
  • 每當發生同步時,它將使用這些漂移計算並慢慢將您的時鐘帶回時間

這具有最大程度地減少時間更改對您的系統的影響的巨大優勢,例如,您不會遇到像日誌中的時間戳這樣的情況似乎跳來跳去。

我強烈建議在您的配置中設置多個伺服器,這可以通過編輯文件/etc/ntp.conf並添加多個伺服器語句輕鬆完成。例如;

server ntp.ubuntu.com
server 0.pool.ntp.org
server 1.pool.ntp.org

有關哪些公共 NTP 伺服器可用的一些討論,您可以查看問題——公共 NTP 伺服器

ntpd 的一個警告是:如果您的時間太遠,那麼它不會更正您的時間。引用手冊頁(根據 RHEL5.6)

如果沒有 TOY 晶片或者由於某種原因它的時間距離伺服器時間超過 1000 秒,ntpd 會假設某些事情一定是非常錯誤的,唯一可靠的行動是操作員進行干預並手動設置時鐘。這會導致 ntpd 退出並在系統日誌中顯示恐慌消息。

這就是為什麼我認為在啟動時硬設置時鐘很重要。當機器關閉時,您依靠硬體時鐘和 CMOS 電池來保持時間。此外,在虛擬機的情況下,恢復到快照幾乎肯定會觸發這種情況。如果您正在使用時間敏感的應用程序(例如 kerberos 身份驗證),請牢記這一點是一個重要的考慮因素。

引用自:https://serverfault.com/questions/240025