我运行的是 Windows 8(无虚拟化,X79 + i7-3820),本地网络中有单独的 Linux NTP 服务器。Linux NTP 通常在真实时间的 1ms 以内。
我已将 Windows 8 设置为通过本地 NTP 同步时间,并设置
特殊轮询间隔 = 1 最小轮询间隔 = 6 更新间隔 = 100
当网络可用时,一切正常,Windows 8 的时钟偏移小于 1ms。
但是当没有连接时,时钟漂移非常快,每小时 90 毫秒,我发现 w32time 服务不会尝试补偿它(就像 Linux NTP 那样)。
应该怎么做才能让 w32time 补偿恒定时钟漂移?
答案1
您是否尝试在那里安装 Linux 或 7,并查看其行为是否更好,以排除任何硬件问题?
我在另一个问题中找到了此链接,其中概述了域控制器的一些推荐设置,包括基于硬件的同步或外部同步。也许您也可以尝试这些设置。此外,如果 MS 没有对此进行测试,那么将同步间隔设置为非常低(每秒一次,每 100 次计时进行一次校正,就像您的示例一样)可能会搞砸事情,我也不会感到非常惊讶。
http://support.microsoft.com/kb/816042
这是全新和更新安装的 Windows 7 默认设置。
C:\Windows\system32>w32tm.exe /查询/配置
[配置] EventLogFlags:2(本地) AnnounceFlags:10(本地) TimeJumpAuditOffset:28800(本地) MinPollInterval:10(本地) MaxPollInterval:15(本地) 最大负相位校正:54000(本地) MaxPosPhaseCorrection:54000(本地) MaxAllowedPhaseOffset:1(本地) 频率校正率:4(本地) 民意调查调整因子:5(本地) LargePhaseOffset:50000000(本地) SpikeWatchPeriod:900(本地) LocalClockDispersion:10(本地) 持有期:5(本地) 相位校正率:1(本地) 更新间隔:360000(本地) [时间提供者] NtpClient(本地) DllName:\Windows\system32\w32time.dll(本地) 已启用:1(本地) 输入提供者:1(本地) AllowNonstandardModeCombinations:1(本地) ResolvePeerBackoffMinutes:15(本地) ResolvePeerBackoffMaxTimes:7(本地) 兼容性标志:2147483648(本地) EventLogFlags:1(本地) LargeSampleSkew:3(本地) SpecialPollInterval:604800(本地) 类型:NTP(本地) NtpServer:time.windows.com,0x9(本地) VMICTimeProvider(本地) DllName:C:\Windows\System32\vmictimeprovider.dll(本地) 已启用:1(本地) 输入提供者:1(本地) Ntp 服务器 (本地) DllName:C:\Windows\system32\w32time.dll(本地) 已启用:0(本地) 输入提供者:0(本地)