在XEN linux客户端上奇怪的波动时间

我在工作中遇到一些奇怪的问题。 我们有几个当前时间波动的XEN客人。

# date;date;date;date;date;date;date Thu Feb 25 16:00:40 PHT 2010 Thu Feb 25 16:00:48 PHT 2010 Thu Feb 25 16:00:40 PHT 2010 Thu Feb 25 16:00:48 PHT 2010 Thu Feb 25 16:00:40 PHT 2010 Thu Feb 25 16:00:48 PHT 2010 Thu Feb 25 16:00:40 PHT 2010 

如上所示,时间在16:00:48和16:00:40之间波动,这对我们来说是有问题的,因为我们的一些脚本中的时间差异的计算变得不准确(例如,应该是几毫秒差异变成几个第二差异甚至有时是负差异)。

有问题的服务器是XEN主机上的Linux客户机。 客人系统上的时间波动,但在主机本身是可以的。 我排除了ntpd,因为无论ntpd是否在客户系统上运行,都会发生这种情况。

客户正在全面虚拟化。 主人和客人的时间是一致的,只是客人的时间在主人的几秒钟内波动,主人的时间不会波动。

/ proc / sys / xen / independent_wallclock在主机中为0,而在guest虚拟机中不存在。 Ntpd服务已停止并禁用。 在主机中将independent_wallclock设置为1不起作用(即guest中的时间仍然有波动)。 虽然我不能重新启动客人,因为它是一个生产服务器。 在周末可能会这样做。

有什么想法,以及如何解决这个问题的想法?


经过长时间的search和testing,完美运行的内核参数是:

 divider=10 clocksource=acpi_pm 

我使用这个页面来确定哪些参数最适合我们使用的操作系统。 该信息适用于VMware,但令人惊讶的是也适用于XEN。 我们也有ntpd重新启用,所以我们有一个工作时间同步。

典型的时光飞逝。 您需要设置NTP并为VM提供正确的内核cmd行

https://access.redhat.com/solutions/27865

可能的答案可能取决于一些细节。 这是一个完整的虚拟化还是一个虚拟化?

如果这是para-virtualisation客人,然后检查输出:

 cat /proc/sys/xen/independent_wallclock 

在客人和dom0。 另外,请检查dom0中的时间。

当dom0中的时间正确且dom0和domU中的/ proc / sys / xen / independent_wallclock为0时,guest中的时间也应该是正确的。 不要试图在任何客人中运行ntpd,让dom0保持时间。

虽然(我猜/ proc / sys / xen / independent_wallclock将不能在domU中使用,但是您仍然可以检查dom0),但我不确定是否需要全虚拟化。