重置内核时间 (PLL/FLL)

重置内核时间 (PLL/FLL)

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 频率将再次漂移到最大值。所以在我看来,只有重新启动才有帮助。

相关内容