vmware 内存管理

     最近,同时做了一个测试。同样一个应用在物理设备及vmwarexunihua上运行,主要测试数据加载。得出了相反的结论。那就虚拟机比物理设备更快。我想这个结论一定很受vmware公司的欢迎,但是结果我们大家分析原来是设置的问题。
     物理机内存1G,虚拟化机器内存2G,分给虚拟机一个G.问题就出在这里,vmware为了加快运行,他的内存管理是经过优化的。
     VMware引入影子页表制,它维护为每个Guest都维护一个“影子页表”,在这个表中能直接维护VPN(Virtual Page Number 虚拟内存页号)和MPN(Machinel Page Number,机器内存页号),之间映射关系,并加载在TLB中。所以通过“影子页表”这个机制能够让Guest在大多数情况下能通过TLB直接访问内存,保证了效率.并在在各个虚拟机之间动态调整内存采用Balloon Driver,在运行的时候,Balloon Agent会和主机的Balloon Driver进行沟通,来调整每台虚拟机的内存空间,来将那些在某些虚拟机上不处于工作状态的内存通过swapping等方式来闲置出来,以拨给那些急需内存的虚拟机。
     但是我们可以通过:
1. Allocated memory

2. Reservations(保留)

3. Limits(限制)

    来实现对内存使用的限制。

   所以,在一个虚拟化环境中,内存是已经实现了动态调整。比如:上例中 1G内存的物理机器使用内存不会超过1G。而一个1G内存的虚拟机,实际内存可能要超过1G。

    当然,这个结论是在内存称为平均的时候,总得来说如果对IO(硬盘,网络)虚拟机还是效率要低一些。


   

猜你喜欢

转载自friskytony.iteye.com/blog/896996