MSN抽风 用squid缓冲windows update
九月 12

自打在ESX 2.5上面部署了几台trustix 3.0.5以后,一直被这几台机器的时钟问题所困挠:不仅时间走得偏慢的离谱(经常一天跑下来就会慢几个小时),而且ntpd服务还无法正确的校正时间。

请注意:以下的解决方法仅针对Vmware ESX 2.5.x系列
问题的解决很简单(不需要重启系统---不管是host system还是guest system):

  1. 以root的身份登录到Vmware Esx的MUI web控制端。
  2. 点击Option选项页
  3. 点击上面的"Advanced Settings"链接,打开一个有着一堆的设置参数的web窗口。
  4. 找到"Misc.TimerHardPeriod"这个参数,把它改成333.然后保存推出

最后,给这些linux guest system的grub配置文件加上kernel的引导参数:

  1. kernel /vmlinuz-2.6.19.7-3trStandard ro root=/dev/sda2 clocksource=pit nosmp noapic nolapic

如果同学们对这个问题的具体细节有进一步的兴趣的话,请继续

为啥会出现这个问题呢?Vmware的官方是这样解释的

By default, ESX Server versions 2.x and earlier program the real timer hardware to deliver a maximum of 1000 clock interrupts per second per CPU. However, SMP-capable Linux 2.6 kernels, as well as some 2.4 kernels with vendor patches, can require a total of 2000 or more virtual clock interrupts per second; ESX Server generally cannot sustain a virtual clock interrupt rate higher than the real hardware rate.

啥意思呢?就是说ESX 2.x以及更早之前的ESX最多只能以1000Hz的频率来计算时间。而对于有SMP功能的 linux 2.6(或者是某些打了补丁的 2.4 kernel) 来说,它们计算时间要求的中断会达到2000hz或者更高的频率,这个就是ESX 2.x没办法满足的要求了。

这个,基本上只能算是初步解决方案。关于Vmware上的guest system的时间问题,Vmware有更详细的手册:vmware_timekeeping,请遇到相关问题的同学们努力攻读吧。

Leave a Reply