今天在一台重要的 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 小時
所謂的正值與負值,就是與 Time Server 時間的誤差正與負值
若是 Time Server 目前為 00:00,而被校時的 client Server 可容忍最大的時間為 -15:00 ~ 15:00。
這樣的一前一後的差距就有30小時,
而且在微軟的 KB文章也建議設定為 15分鐘或者更低,不太懂為什麼微軟會這樣設定 Default 值
設定 Windows Time 服務,以防止大規模的時間位移
在考慮系統更新頻率以及網路環境下小弟設定為以下
MaxPosPhaseCorrection 900
MaxNegPhaseCorrection 900
MaxPollInterval 15
SpecialPollInterval 604,800
誤差值為上下15分鐘,15秒系統輪詢一次 Time Server,並且7天做一次手動輪詢
避免讓系統耗費在 sync time 太多時間,誤差調整在可接受範圍內即可。
Orignal From: Windows 設定同步時間誤差,防止大規模時間的位移-Time service
沒有留言:
張貼留言