時區不准確
我們在 Litespeed Web 集群中同步時間時遇到了問題,即係統時間(我們使用的是 CentOS)似乎認為 EST 的目前時間(作為“美國/紐約”)時區比目前時間早 3 小時。
現在在佛羅里達州的時間是晚上 10:53 伺服器報告這個:TZ=‘America/New_York’ 將被使用。當地時間現在是:2013 年 6 月 4 日星期二 01:51:43 EDT。現在世界時間是:2013 年 6 月 4 日星期二 05:51:43 UTC。
什麼會導致這樣的事情?這同樣適用於我們的集群的 PHP.ini 配置。
這是來自配置完全相同的完美網路伺服器的響應:將使用 TZ=‘America/New_York’。當地時間現在是:Mon Jun 3 22:53:15 EDT 2013。
–更新 1– 工作伺服器上的 ntp 對等點:
krillin.ecansol 184.164.149.162 2 u 52 64 1 35.631 110337. 7937.50 ntp.sunflower.c 184.164.149.162 16 u - 64 0 0.000 0.000 15937.5 triangle.kansas 184.164.149.162 2 u 50 64 1 55.125 110331. 7937.50
破碎伺服器上的 ntp 對等點:
fairy.mattnordh 164.244.221.197 2 u 59 64 7 49.397 -108052 1.171 ec2-50-16-231-1 209.51.161.238 2 u 60 64 7 59.565 -108052 0.016 colossus915.ser 200.23.51.102 2 u 59 64 7 46.693 -108052 0.051
除非您專門配置了您的作業系統,否則您的伺服器的系統時鐘必須反映 UTC,而不是本地時區。時區偏移是事後應用的,因為可以在單個伺服器上同時使用多個時區。假設系統時鐘設置為 UTC,您的時區文件會告訴伺服器返回的時間。
如果系統時鍾離目標時鐘太遠,NTPd 將拒絕同步。您必須在目標時間 (UTC) 的一分鐘左右內手動將其設置為;或者用於
ntpdate
從 NTP 伺服器獲取時間並立即相應地設置時鐘。然後你可以執行 ntpd 來微調你的時鐘以獲得你需要的毫秒精度。在預熱時間之後,
ntpq -pn
應該在左側顯示一個標有 a 的遠端伺服器,*
以表明它已被宣佈為主要同步對等方,而其他伺服器則希望標有 a+
以表明它們是對等的合格備用候選者。如果沒有,那麼您的時鐘沒有同步。
請注意,在對等方列表中,偏移量應小於 1ms
$$ absolute value $$在正常執行條件下,時鐘微調可能需要幾百毫秒。您的列表顯示了一個遠遠超出範圍的偏移,以至於使用時鐘擺動進行同步是不可能的。相反,您需要將時鐘“跳”到正確的時間,這是 ntpd 政策上永遠不會自行完成的事情。這就是該
ntpdate
工具的用途。