ntp 尝试调整内核的时间变量,以提高自由运行时间的性能。
我正在寻找重置这些变量的方法,但找不到执行此操作的程序/命令。
感谢大家的帮助!
答案1
我认为您说的一定是 NTP Drift 文件。摘自 Dr Mill(NTP 创始人)的网站:
在运行过程中,ntpd 会测量并纠正偶然出现的时钟频率错误,并偶尔将当前值写入由 Driftfile /etc/ntp.drift 配置命令指定的文件。如果 ntpd 停止并重新启动,它会根据此文件初始化频率,并避免可能需要很长的间隔来重新学习纠正。
删除漂移文件并重新启动 ntp 守护程序即可解决您的问题。在 debian 中,您可以执行以下操作(请注意,漂移文件可能存储在不同位置...您可以随时使用“locate”命令来找到它):
invoke-rc.d ntp stop
rm /var/lib/ntp/ntp.drift
invoke-rc.d ntp start
答案2
ntp时间:
DESCRIPTION
This program is useful only with special kernels described in the A Kernel Model for
Precision Timekeeping page. It reads and displays time-related kernel variables using
the ntp_gettime() system call. A similar display can be obtained using the ntpdc
program and kerninfo command.
您可以设置:
- 频率偏移
- 估计误差
- 时钟偏移
- 时间常数
我假设这些就是你所说的内核时间变量。如果你还有其他感兴趣的变量,请告诉我
答案3
这些变量是根据 ntp 服务器时钟计算来补偿本地内核时钟的。本地内核时钟仅在内核启动时校准。例如,检查内核日志
Fast TSC calibration using PIT
Detected 2093.938 MHz processor.
Calibrating delay loop (skipped), value calculated using timer frequency.. 4187.87 BogoMIPS (lpj=2093938)
当本地时钟与 ntp 服务器时钟偏差过大时,PLL 跟踪将被限制到最大 500ppm,如本例所示
# ntpdc -c kerninfo
pll offset: -3.9831e-05 s
pll frequency: -500.000 ppm
maximum error: 0.033146 s
estimated error: 2.2e-05 s
status: 2001 pll nano
pll time constant: 4
precision: 1e-09 s
frequency tolerance: 500 ppm
从长远来看,重置 pll 频率没有帮助,因为内核定时器本身在启动时估计不够准确。因此 PLL 频率将再次漂移到最大值。所以在我看来,只有重新启动才有帮助。