如何解决虚拟机的时钟漂移?

时间:2020-03-06 14:33:49  来源:igfitidea点击:

我的虚拟机的时钟漂移非常大。那里有关于处理此问题的文档,但是似乎没有任何工作很好。

任何人都有任何建议,对他们来说很有效的事情,...

据说通过ntp定期更新不是一个好的解决方案。

解决方案

是否不安装虚拟机添加功能(工具)来同步来宾操作系统和主机操作系统之间的时钟?

我们可以使用cmd和

net time \computer_name /set

远程设置时钟(例如在脚本中)

Supposedly updating regularly via ntp
  is not a good solution

不过,这是我建议的解决方案。为什么在我们所在的位置不认为它很好?

如果尚未安装NTP,请安装它。

ntpdate将正确设置时钟,然后ntpd可以保持时钟准确。

NTP池项目提供了大量的NTP服务器池供我们选择。

编辑只是注意到我们说我们认为NTP不是一个好的解决方案,为什么?如果我们担心时钟变化的影响,则NTP是理想的选择,因为ntpd不会使时钟向前或者向后跳,而是通过略微加速/减速直到其与时钟保持一致来"扭曲"时钟。正确的时间。

vmware在这个问题上有一个非常好的PDF文档。

基本上,房东会尽其所能杀死传递给客人的壁虱。
不要运行NTP或者定时或者垃圾。只需安装vmware-guestd,然后让主机控制时间即可。如果我们仍然失去跳动,那么任何其他解决方案也将产生重大漂移。

如果可以,请使用频率变动率较低的客户机操作系统。较新版本的Linux带有1000Hz的滴答声,但以前只有100Hz。对于主机来说,交付似乎更容易。通常需要内核重建才能更改HZ值。

没有确定的答案,因为存在几种方法,每种方法各有利弊。选择哪种取决于任务,服务器负载,操作系统等。

阅读vmware_timekeeping.pdf,以彻底了解该问题。

Linux的快速配方可在单独的知识库文章中找到

我有同样的问题,并通过解决

  • 安装vmware-guestd
  • 向内核发送一个选项clocksource = acpi_pm
  • 以root身份每小时运行一次hwclock -s。

只是添加一些有关为什么NTPD不是一个好的解决方案的数据。 NTPD是一个试图补偿本地时钟漂移的守护程序。如果"内部时钟"在一天中漂移X秒钟,则与其像" ntpdate"中的强制命令那样向前/向后跳跃,NTPD会尝试向时钟添加/删除一些周期,以便通常情况下及时在15分钟内,时钟就足够准确地运行了,并且补偿功能克服了服务器在一天中损益的X秒数。这样做的好处是我们不会在一天中的任何时间重复出现,这对于事务系统来说是必须的。

但是为了做到这一点,NTPD要求本地时钟做得相当好,这通常意味着本地时钟每天的漂移时间不会超过42秒(或者多或者少;我不确定确切的时间)数字)。在虚拟机中,这通常是一个问题,因为时钟是由软件控制的,因此,如果主机过载过多,我们会看到CLIENT的时钟运行得更慢,如果时钟过载,则时钟也可能运行得太慢快速地。对于NTPD,这里的问题是本地时钟不可靠,并且时间不恒定。可能会有所不同,具体取决于HOST系统的过载情况。

因此,在这种情况下,最好按照建议的方式安装客户端工具,并将CLIENT时钟与HOST的时钟(通常称为"挂钟")同步。