现在的位置: 首页 > 综合 > 正文

加快虚拟机运行速度

2012年02月12日 ⁄ 综合 ⁄ 共 1407字 ⁄ 字号 评论关闭

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 }

这样就可以实现开机自动更改了,大大提高虚拟机速度

抱歉!评论已关闭.