設定高精確度的系統

適用於:Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows 11、Windows 10 版本 1607 及更新版本、Azure Stack HCI 版本 21H2 和 20H2

Windows 10 和 Windows Server 2016 中的時間同步功能已大幅改善。 在合理的作業狀況下,系統可以設定為維持 1 ms (毫秒) 或更高的準確度 (以 UTC 為準)。

警告

Windows Server 2012 R2 和較舊版本無法達到同樣的高準確度目標。 這些作業系統不支援高準確度。 在這些版本中,Windows Time 服務滿足下列需求:

  • 提供必要的時間準確度以滿足 Kerberos 第 5 版的驗證需求。
  • 為已加入一般 Active Directory 樹系的 Windows 用戶端和伺服器提供精確度沒那麼高的時間。

2012 R2 和較舊版本的更大允差則不在 Windows Time 服務的設計規範內。

Windows 10 和 Windows Server 2016 的預設設定

雖然我們在 Windows 10 或 Windows Server 2016 上支援最多 1 毫秒的正確性,但大多數客戶不需要高度精確的時間。

因此,預設設定的目的就是要滿足與較舊作業系統相同的需求,以便:

  • 提供必要的時間準確度以滿足 Kerberos 第 5 版的驗證需求。
  • 為已加入一般 Active Directory 樹系的 Windows 用戶端和伺服器提供精確度沒那麼高的時間。

如何設定高準確度的系統

時間準確度必須以端對端的方式將精確時間從授權時間來源發佈到終端裝置。 在這個路徑上新增測量不對稱的任何項目,都會對裝置上可達到的精確度產生負面影響。

為此,我們編寫了可為高準確度環境設定 Windows Time 服務的支援界限,以概述使用者還必須滿足什麼環境需求才能達到高準確度目標。

作業系統需求

高準確度設定需要使用 Windows 10 或 Windows Server 2016。 時間拓撲中的所有 Windows 裝置都必須符合這項需求,包括較高層級的 Windows 時間伺服器,而在虛擬化案例中,則包括執行有時效性虛擬機器的 Hyper-V 主機。 這些裝置全都必須至少使用 Windows 10 或 Windows Server 2016。

在下圖中,需要高準確度的虛擬機器所執行的是 Windows 10 或 Windows Server 2016。 同樣地,虛擬機器所在的 Hyper-V 主機,以及上游 Windows 時間伺服器也都必須執行 Windows Server 2016。

A diagram that shows three virtual machines connected to a Windows Server 2016 Hyper-V host utilizing the Windows Time service.

提示

您可以在命令提示字元中執行命令 winver,以確認作業系統版本是 1607 (或更新版本),而 OS 組建是 14393 (或更新版本),如下所示:

A screenshot of the winver command displaying Windows Server 2016 version 1607 and operating system build 14393.

系統設定

要達到高準確度目標就需要進行系統設定。 有各種方式可以執行此設定,包括直接在登錄中或透過群組原則執行。 如需這些設定的詳細資訊,請參閱 Windows Time 服務技術參考:Windows Time Service Tools

Windows Time 服務的啟動類型

Windows Time 服務 (W32Time) 必須持續執行。 若要這麼做,請將 Windows Time 服務的啟動類型設定為「自動」啟動。

A screenshot of the Windows Time service properties box displaying its startup type set to automatic.

累計單向網路延遲

測量不確定性和「雜訊」會增加網路延遲。 因此,就必須將網路延遲控制在合理界限內。 特定需求則取決於目標準確度,在可為高準確度環境設定 Windows Time 服務的支援界限一文內會有相關概述。

若要計算累計的單向網路延遲,請在時間拓撲的各 NTP 用戶端-伺服器節點組合之間新增個別的單向延遲,從目標開始,並於高準確度層級 1 時間來源結束。

例如:假設有一個時間同步階層,其具有依該順序的一個高精確度來源、兩個中繼 NTP 伺服器 (A 和 B),以及一個目標機器。 若要取得目標和來源之間的累計網路延遲,請測量下列項目之間的平均個別 NTP 來回時間 (RTT):

  • 目標和時間伺服器 B
  • 時間伺服器 B 和時間伺服器 A
  • 時間伺服器 A 和來源

您可以使用收件匣 w32tm.exe 工具來取得此測量值。 若要這樣做:

  1. 從目標和時間伺服器 B 執行計算。

    w32tm /stripchart /computer:TimeServerB /rdtsc /samples:450 > c:\temp\Target_TsB.csv
    
  2. 從時間伺服器 B 針對 (指向) 時間伺服器 A 執行計算。

    w32tm /stripchart /computer:TimeServerA /rdtsc /samples:450 > c:\temp\Target_TsA.csv
    
  3. 從時間伺服器 A 針對來源執行計算。

  4. 接下來,新增在上一個步驟中測量到的平均 RoundTripDelay,並除以 2 來取得目標和來源之間的累計網路延遲。

登錄設定

MinPollInterval

設定系統輪詢所允許的最小間隔 (以 log2 秒為單位)。

描述
機碼位置 HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config
設定 6
結果 最小輪詢間隔現在是 64 秒。

下列命令會指示 Windows Time 取得已更新的設定:

w32tm /config /update

MaxPollInterval

設定系統輪詢所允許的最大間隔 (以 log2 秒為單位)。

描述
機碼位置 HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config
設定 6
結果 最大輪詢間隔現在是 64 秒。

下列命令會指示 Windows Time 取得已更新的設定:

w32tm /config /update

UpdateInterval

每次相位校正調整所間隔的時鐘刻度數目。

描述
機碼位置 HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config
設定 100
結果 每次相位校正調整所間隔的時鐘刻度數目是 100 刻度。

下列命令會指示 Windows Time 取得已更新的設定:

w32tm /config /update

SpecialPollInterval

設定啟用了 SpecialInterval 0x1 旗標時的輪詢間隔 (以秒為單位)。

描述
機碼位置 HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
設定 64
結果 輪詢間隔現在是 64 秒。

下列命令會重新啟動 Windows Time 來取得已更新的設定:

net stop w32time && net start w32time

FrequencyCorrectRate

描述
機碼位置 HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config
設定 2

注意

如需深入了解 W32Time 登錄設定,請參閱 Windows Time 登錄參考