在虚拟机属性设置页面有一些我们可以配置内存的选项.
1. Allocated memory
该值在虚拟机属性的硬件选项卡中, 为虚拟机用到的物理内存总额, 虚拟机不能超过该限制获取更多的内存.
2. Reservations(保留)
分配虚拟机的最少内存量, 确保虚拟机可以获得的最小内存. 当该条件不能得到满足时, 将无法启动虚拟机. 就是所谓的”接入控制”. 该值在虚拟机属性的资源选项卡中设置, 默认情况下没有配置该选项.
3. Limits(限制)
该值约束虚拟机使用的内存上限.
VMkernel交换文件
当虚拟机运行需要更多内存时利用该文件将内存内容交换到磁盘以释放内存. 当设置保留后, 保留的内存将得到保护, 不会被交换到磁盘. 因此每当虚拟机启动时, VMkernel会创建一个容量为限制减去保留后大小的交换文件. 例如我们有一个虚拟机限制内存为1024M, 保留内存为512M, 则创建的交换文件大小为1024MB-512MB=512MB. 如果我们将保留内存设为1024M, 就不会创建交换文件.
请记住, 在默认情况下, 没有设置任何保留和限制, 因此为每个虚拟机创建与分配内存相同大小的交换文件.
4. Shares(份额)
份额指定虚拟机的相对优先级或重要性, 份额高的虚拟机相比份额低的虚拟机可消耗更多的资源. 不像固定的限制(Limits)和保留(Reservations), 份额(Shares)能动态改变.
记住份额系统仅在内存资源匮乏导致争用发生时发挥作用.
份额通常指定为高(High)、正常(Normal)、低(Low)或自定义值. 这些值按4:2:1比例指定份额值.
低: 1MB按5个份额分配给虚拟机.
正常: 1MB按10个份额分配给虚拟机.
高: 1MB按20个份额分配给虚拟机.
例: 我们有5个虚拟机, 各分配2,000M内存, 份额值设为”Normal”. ESX服务器只有4,000MB物理内存可用于虚拟机. 这里每个虚拟机可得到20,000个份额(10*2,000), 所有虚拟机共计份额为100,000(20,000*5), 这里每个虚拟机将获得同等的资源20,000/100,000=1/5现有的资源=4,000/5=800MB.
现在我们改变1号虚拟机的份额为”High”, 1号虚拟机将获得40,000个份额(20*2,000), 因此1号虚拟机得到的资源为40,000/120,000=1/3现有的资源=4,000/3=1,333MB, 其他四个虚拟机得到资源为20,000/120,000=1/6现有的资源=4000/6=666MB
我们可配置资源池以代替基于一个虚拟机的这些设置, ESX资源池共用CPU和内存资源.
- 虚拟机的内存设置结束 -