我使用的是旧版本的 RHEL,最近将其从 5.4 升级到 5.8,并带有定制的 2.30.9 内核。
除非使用外部时间源(例如 NTP)进行控制,否则系统时钟会大幅漂移(> 5 秒/天)。
BIOS 上的硬件时钟似乎更加准确(< 1 秒/周)。
我有几个可用的 Linux 盒子,如果我检查,/etc/adjtime
我发现在具有相同硬件、操作系统和应用程序的不同机器上,漂移测量为 0.000004、-0.000050、10.000107 和 -0.000234 秒/天。
当外部时间源不可用时,我们需要最小化时钟漂移。
我尝试了各种内核启动选项,并取得了不同程度的成功来改进:
最初内核设置行在/boot/grub/grub.conf
kernel /vmlinuz-2.6.30.9 ro root=LABEL=/ pmtr=0x608 acpi_pm_good clocksource=acpi_pm noapic ide_core.noprobe=1.1 mem=512M ramdisk_size=262144
时钟源文件包含:
cat /sys/devices/system/clocksource/clocksource0/available_clocksource
tsc acpi_pm jiffies
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
acpi_pm
每天漂移超过 5 秒!
首先我尝试启用 HPET:
kernel /vmlinuz-2.6.30.9 ro root=LABEL=/ pmtr=0x608 acpi_pm_good hpet=enable clocksource=hpet noapic ide_core.noprobe=1.1 mem=512M ramdisk_size=262144
时钟源文件包含:
cat /sys/devices/system/clocksource/clocksource0/available_clocksource
tsc acpi_pm jiffies
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
tsc
这似乎仍然存在漂移,但每天仅大约 4 秒。
接下来我尝试关闭 tsc: kernel /vmlinuz-2.6.30.9 ro root=LABEL=/ pmtr=0x608 acpi_pm_good notscdivider=10 acpi_pm_goodclocksource=acpi_pm noapic ide_core.noprobe=1.1 mem=512M ramdisk_size=262144
时钟源文件包含:
cat /sys/devices/system/clocksource/clocksource0/available_clocksource
tsc acpi_pm jiffies
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
acpi_pm
这已经运行了大约一天,没有明显的漂移。
我的问题是:
1)根据本网站http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006427该divider=10 clocksource=acpi_pm
要求在 RHEL 5.3 中被删除,那么为什么它会改善 RHEL 5.8 的情况呢?
2)我更改的内核参数有什么影响?
3) 漂移的准确度如何/etc/adjtime
?
4) 是否可以设置hwclock
在ntp工作时更新?
5)有没有更好的方法来实现我想要做的事情?
谢谢
答案1
您可能想尝试不同的内核。定制的内核可能存在一些计时问题。