|
楼主 |
发表于 2010-6-14 11:09:19
|
显示全部楼层
Post by CnkknD;2096512
我现在还有一个问题,虚拟机里开不开虚拟内存?我发现说法都不一,不过大部分说开
但就我的使用情况来看,没开效果更好
我分配的是1g内存,装的arch,平时在虚拟机里装个kde,主要开netbeans和浏览器.差不多够用.
在我分配了1g的swap(专门添加的一块虚拟磁盘)以后,虽然linux会尽多的使用物理内存,但免不了和虚拟内存交换, 一交换就有磁盘io, 有磁盘io系统就容易卡, 比如鼠标窗口移动是不平滑, 而不挂swap就不会这样.
我想可能是没挂swap的时候,有程序允许需要分配内存了,linux发现内存不够会释放一些缓存,而不是与swap交换, 磁盘io量小. 虚拟磁盘读写性能以及cpu占用率差距大, 所以, 即使是缓存小了, 系统需要时再从磁盘载入影响也不太大.
我随便想的, 希望有人一起探讨.
ps 我现在非常喜欢虚拟机, 只要内存够大, 几个os可以相互弥补不足. 我基本上是用玩游戏的win做host, 虚拟机一个是测试用的xp, 一个是开发和上网用的arch, 还有偶尔品尝一下的mac. linux和win作为宿主机情况可能还是不太一样的。问题的关键可能是虚拟机的虚拟硬盘到底保留了多少宿主机的分区格式特点了。比如宿主用ext3,而虚拟机里用ext4,那么虚拟机里面的性能如何?是ext3的性能还是ext4的性能?——我想可能ext3的性能应该是该虚拟机的最高上限了,而不会有ext4提升的那部分。
硬盘的最大性能>特定分区格式和系统所能利用的最大性能>虚拟机虚拟硬盘所能利用的最大性能>虚拟机中的操作系统和分区格式所能利用的最大性能
经过这么多层的削弱,估计确实非常有必要有一种专门为虚拟机设计的分区格式,比如lvm之类的,来获得更搞的性能。
虚拟机中,linux的swap还是要开的,因为你无法确定某一天你会大量使用内存(尤其是用于服务器方面的),以至你原来给的内存不够用,所以需要预留这些空间,有了这点缓冲时间,估计够在线解决问题了。
但挂了swap之后慢,可能和我上面说的:虚拟机的硬盘性能最大只能达到宿主的硬盘性能上限,而不会超过它,所以导致的。 |
|