高精度时间服务配置需要 Windows 10 或 Windows Server 2016以上操作系统。
Windows 10 和 Windows Server 2016 中的时间同步已大幅改善。 在合理的操作条件下,可将系统配置为维持 1ms(毫秒)的精度或更高的精度(依据 UTC)。
Windows Server 2012 R2 及更低版本无法满足同样的高精度目标。2012 R2 及更低版本的较高容差超出了 Windows 时间服务的设计规范。
虽然 Windows 10 或 Windows Server 2016 上支持高达 1 ms 的精度,但大多数用户并不需要高度精确的时间。
因此,系统默认配置Windows 2012 R2以前的操作系统相同的要求,即:
时间精度需要准确时间从权威时间源到终端设备进行端到端分布。 沿此路径在测量中增加不对称性的任何因素都会负面影响设备上可实现的精度。
高精度配置需要 Windows 10 或 Windows Server 2016。
时间拓扑中的所有 Windows 设备都必须满足此要求,包括更高层次的 Windows 时间服务器以及在虚拟化方案中运行时间敏感型虚拟机的 Hyper-V 主机。 所有这些设备都必须至少为 Windows 10 或 Windows Server 2016。
Windows 时间服务 (W32Time) 必须持续运行。 为此,请将 Windows 时间服务的启动类型配置为“自动”启动。
数据通信必然存在网络延迟。 因此,网络延迟必须在合理的范围内。
若要计算累积单向网络延迟,请将时间拓扑(从目标开始,到高精度第 1 层次时间源结束)中的 NTP 客户端 - 服务器节点对之间的各个单向延迟进行相加。
若要获取目标和源之间的累计网络延迟,请测量以下项之间各自的平均 NTP 往返时间 (RTT):
配置注册表,让时间服务相关参数符合高精度要求。
配置允许系统轮询的最小间隔(以 log2 秒为单位)。
说明 | 值 |
---|---|
密钥位置 | HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config |
设置 | 6 |
结果 | 最小轮询间隔现为 64 秒。 |
以下命令将帮助 Windows 更新时间参数生效:
w32tm /config /update
配置允许系统轮询的最大间隔(以 log2 秒为单位)。
说明 | 值 |
---|---|
密钥位置 | HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config |
设置 | 6 |
结果 | 最大轮询间隔现为 64 秒。 |
以下命令将帮助 Windows 更新时间参数生效:
w32tm /config /update
相位校正调整之间的时钟周期数。
说明 | 值 |
---|---|
密钥位置 | HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config |
设置 | 100 |
结果 | 相位校正调整之间的时钟周期数现为 100。 |
以下命令将帮助 Windows 更新参数生效:
w32tm /config /update
配置启用 SpecialInterval 0x1 标志后的轮询间隔(以秒为单位)。
说明 | 值 |
---|---|
密钥位置 | HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient |
设置 | 64 |
结果 | 轮询间隔现为 64 秒。 |
以下命令将帮助 Windows 更新参数生效:
net stop w32time && net start w32time
# 重启w32time 服务
组策略设置 | 默认值 |
---|---|
AnnounceFlags | 10 |
EventLogFlags | 2 |
FrequencyCorrectRate | 4 |
HoldPeriod | 5 |
LargePhaseOffset | 50,000,000 |
LocalClockDispersion | 10 |
MaxAllowedPhaseOffset | 300 |
MaxNegPhaseCorrection | 172,800(48 小时) |
MaxPollInterval | 10 |
MaxPosPhaseCorrection | 172,800(48 小时) |
MinPollInterval | 6 |
PhaseCorrectRate | 7 |
PollAdjustFactor | 5 |
SpikeWatchPeriod | 900 |
UpdateInterval | 100(1 秒) |