Linux

時區不准確

  • June 4, 2013

我們在 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工具的用途。

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