[Virtualization]ESXi体系结构与内存管理(二)控制内存分配

2 控制内存分配

在ESXi上,VMkernel管理所有的计算机内存,内存中的一部分由VMkernel消耗用以运行自身代码及存储数据,剩余的部分供虚拟机及其虚拟机监控程序(VMX)使用。如所有物理资源一样,内存是有限资源。管理员借助预留、限制和共享三种机制可以更精细地控制ESXi分配内存。三种机制vSphere客户端设置界面如图 2所示。(本节主要参考自文献[2] 11.2.2控制内存分配)

[Virtualization]ESXi体系结构与内存管理(二)控制内存分配_第1张图片

图 2 vSphere客户端的内存控制界面

2.1 内存预留技术

预留(Reservation)技术确保虚拟机至少分配预留值相应的真实物理内存。虚拟机启动的必备条件是ESXi主机具有预留值相应的可用物理内存,若内存不足,虚拟机启动将被拒绝。虚拟机启动后,主机会根据实际使用情况分配内存,预留值以下的内存将无条件分配,低于预留值部分的内存用后主机也不会将其收回。预留技术虽然确保了虚拟机具有一定容量的可用内存,但是预留的内存一旦分配,主机就无法再回收利用,降低内存使用效率,减少同时可运行的虚拟机数量。

2.2 内存限制技术

限制(Limit)技术控制虚拟机分配的真实物理内存低于限制值。实施限制时,任何虚拟机操作系统都无法意识到自身受到了限制,系统不仅始终认为自己拥有配置的内存容量,还会按照该容量继续进行使用。通常情况下,当需要降低ESXi主机上的物理内存使用率并且可以接受负面性能影响时,限制技术只是一种临时性措施。

2.3 内存共享技术

共享(Shares)技术为虚拟机请求内存建立优先级,共享值通常指定为高、正常或低,分别按照4:2:1的比例分配内存值,还可以选择自定义为各虚拟机分配特定的份额。虚拟机请求的内存应该大于其预留值,小于限制值。只有当虚拟机正在请求的内存超出ESXi主机能够提供的最大容量时,共享技术才会起作用。假设虚拟机A和B的共享值分别为1000MB、2000MB,A和B其它配置均相同且ESXi不能使用其它内存管理技术回收内存。当虚拟机A和B同时请求内存超过主机所能提供的最大值时,虚拟机A每分配1个内存页面,虚拟机B将分配2个内存页面。

2.4 内存开销

ESXi主机在运行管理虚拟机的过程中,除了分配给虚拟机使用的内存外,还会引起两种内存开销:一是运行VMkernel系统及其上各种守护进程所消耗的内存;二是为每个虚拟机运行各自的虚拟机监控程序(VMM)所消耗的内存,该内存会随着虚拟机配置的内存和CPU数量增加而提高,具体情况如表 1所示。

表 1 虚拟机上的示例开销内存

内存 1 vcpu 2 vcpus 4 vcpus 8 vcpus
256 20.29 24.28 32.23 48.16
1024 25.90 29.91 37.86 53.82
1024 48.64 52.72 60.67 76.78
1024 139.62 143.98 151.93 168.60

你可能感兴趣的:(虚拟技术)