VirtualBoxVirtualBox的显示干净利落,一点都不拖泥带水,给人的感觉是运行速度很快,尤其是开机时显示的画面挺顺畅的。
Vmware 起初在我的笔记本里运行速度很慢,启动、关机明显比VirtualBox慢,程序运行速度似乎还行。不过让人难以接受的就是系统时间,基本是每隔7、8秒 虚拟机里才跳1秒,即使打开vmware tools的时间同步也经常比host机的时间慢1~5分钟,这对于编译程序是不可接受的,可能会造成make误以为某些需要编译的模块已经编译过了。而 且其他一些用到计时的程序(比如ping)也不正常。但是在我的台式机上就没有时间变慢这个问题。在网上搜了一下,发现这是一个有悠久历史的问题,按照某 些方法加了内核参数不起作用,昨天终于找到了问题所在:
代码:
cat /sys/module/processor/parameters/max_cstate
我的笔记本里这个值是8,解决方法很简单,只要一行命令:
代码:
echo 1 > /sys/module/processor/parameters/max_cstate
执行完后立竿见影,guest os的时间立刻就跟上了,而且运行速度也明显加快,编译程序时感觉就像在真实的机器里一样快,真舒坦。
但是,重启之后,max_cstate 的值又变回默认的8 那该怎么改变呢?
我是用的rhel5,在ubuntu上他们是这么改的:
sudo gedit /etc/init.d/acpid
查找echo “$PRINTK” > /proc/sys/kernel/printk,在这句话下载添加
echo 1 > /sys/module/processor/parameters/max_cstate
即可实现开机自动修改
但是在rhel5里面,我没有找到$PRINTK” > /proc/sys/kernel/printk 这些内容,该怎么办呢?
其实,我仔细看了/etc/init.d/acpid 这个文件,我们的做法和ubuntu下的其实是大同小异的。也是在开始的时候就执行命令:echo 1 > /sys/module/processor/parameters/max_cstate
这样就可以实现开机自动更改了。
/etc/init.d/acpid 文件的内容如下:
你可以看他的start函数,这是开机做处理的,我们在42行,也就是echo -n $"Starting acpi daemon:之后,加入echo 1 > /sys/module/processor/parameters/max_cstate
1. 34 start() {
2.
3. 35
4.
5. 36 check
6.
7. 37
8.
9. 38 # Check for kernel support
10.
11. 39 [ -f /proc/acpi/event ] || exit 1
12.
13. 40
14.
15. 41 echo -n $"Starting acpi daemon: "
16.
17. 42 echo 1 > /sys/module/processor/parameters/max_cstate
18.
19. 43 daemon /usr/sbin/acpid
20.
21. 44 RETVAL=$?
22.
23. 45 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/acpid
24.
25. 46 echo
26.
27. 47 return $RETVAL
28.
29. 48 }
这样就可以实现开机自动更改了,大大提高虚拟机速度