Site icon Mr. 沙先生

Windows 設定同步時間誤差,防止大規模時間的位移-Time service

今天在一台重要的 SVN Server 被告知系統時間錯誤,但這台 Server 一直以來都有同步內部的 Time Server

 

如圖所示看起來也沒有太大的異常,但實際的誤差時間高達 8 小時

 

這個誤差值來自於 Windows Default 的設定

在預設的 Time Service 登錄檔內可以設定誤差值以及輪詢的時間

 

以 Windows 2003 為例

到 Time Service 的登錄檔路徑

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

 

 

有以下參數可以做調整,以下單位都以計算

MaxPosPhaseCorrection 此參數為最大正值的誤差限制

MaxNegPhaseCorrection 此參數為最大負值的誤差限制

MaxPollInterval 此參數為系統背景排程輪詢的時間

SpecialPollInterval 此參數為手動輪詢的時間

 

 

 

 

 

此篇首要修改的是 MaxPosPhaseCorrection 和 MaxNegPhaseCorrection,這兩個參數的預設值都是 54,000 秒,也就是 15 小時

 

這兩項參數是基於 Windows 安全性設定,只要超過正負值 15 小時就會阻擋時間同步,並記錄在 事件檢視器內

 

在微軟的 KB文章建議設定為 15分鐘或者更低

設定 Windows Time 服務,以防止大規模的時間位移

 

 

但為了時間的正確性,在此將安全性時間改為無限制,並且縮短 client 同步輪詢的時間

 

 

在考慮系統更新頻率以及網路環境下小弟設定為以下

MaxPosPhaseCorrection FFFFFFFF

MaxNegPhaseCorrection FFFFFFFF

MaxPollInterval 15

SpecialPollInterval 604,800

 

 

 

避免讓系統耗費在 sync time 太多時間,誤差調整在可接受範圍內即可。

 

 

參考資料

http://blog.miniasp.com/post/2009/06/How-to-adjust-Time-using-Windows-Time-Service.aspx

Exit mobile version