如何理解VMware内存资源管理

如何理解VMware内存资源管理,第1张

问的问题过于高深,所以直接百度一篇。

在虚拟化应用中,内存是最为宝贵的资源。同CPU和存储资源管理相比,虚拟化的内存资源管理更为复杂。

内存回收vmware ESX hypervisor(管理程序)能够截获虚拟机

一次访问某内存,将物理内存填零后分配给虚拟机,但是hypervisor无法得知虚拟机中哪些内存是空闲的。hypervisor不断的将内存分配给虚

拟机,当在内存超配(memory

overcommitment)的情况下主机物理内存将可能耗尽,因此hypervisor需要从虚拟机中回收(reclaim)内存,ESX

hypervisor使用以下机制回收内存:

当主机可用内存高于等于6%时,hypervisor仅使用透明页共享回收内存(当没有设置虚拟机内存限制时)。如果虚大段友拟机设定了内

存限制,则hypervisor使用ballooning甚至swapping回收内存直到低于限定值。当主机可用内存接近4%时,hypervisor

使用ballooning回收内存,一般情况下可以及时的回收内存,让可用内存保持在4%以上。如果ballooning不足以回收内存,主机可用内存接

近2%时,hypervisor在ballooning回收内存的基础上增加使用swapping(并激活内存压缩)加速内存回收,让可用内存保持在4%

以上。罕见的当主机可用内存只有1%时,hypervisor除了继续使用ballooning和swapping回收内存,还禁止所有虚拟机申请更多内

存。

透明页共享(Transparent Page

Sharing):当多个虚拟机在一个主机上运行时,可能有些内存页是一样的,比如一样的Guest

OS。hypervisor通过周期性的扫描内存页生成hash值在内存hash总表中查找,一旦hash匹配就会进行完整比较,确认内存页完全一样后

hypervisor会删除冗余内存页以指针代之,类似于存储中的重复数据删除功能。当某虚拟机对共享内存页试图写时,hypervisor会复制一个这

个虚拟机的专有页来修改,保证共享页不被破坏。这种内存回收的速度取决于扫描的速度,在ESX(i)的高滚槐级设置中可以设置扫描速度和时间间隔。所以最好将

相同或者相近的OS部署在一台host上面,以便更好的使用TPS节省内存。

气球膨胀(Ballooning):由于

hypervisor无法得知虚拟机中哪些内存是空闲的,因此依靠VMware Tools在Guest OS中的气球驱动(balloon

driver)来回收内存。当需要从该虚拟机回收内存时,气球膨胀从Guest

OS中请求内存,分配给气球驱动的内存可被hypervisor安全的回收,Guest

OS自行决定将哪些内存swapping交换到硬盘上以保证分配给气球驱动内存。显然需要安装VMware

Tools才能实现气球回收内存,通过这种方式回收内存较慢,依赖于Guest OS内存分配的速度。

内存交换(Hypervisor

Swapping):当虚拟机启动时就会创建一个内存swap文件,文件大小为最大内存交换量(虚拟机配置内存-内存预留)。当上面两种回收方式不能满足

需求时,hypervisor会进行swapping将虚拟机的物理内存交换到硬盘上。hypervisor并不知道将哪燃拦些内存交换好,Guest

OS也不知道哪些内存被交换了,这将极大的影响虚拟机的性能,当出现这种情况时说明需要加内存了。

内存压缩(Memory

Compression):这是4.1版本的新功能,对内存的交换的优化。如果swapping的内存页是可压缩的,则将其压缩后存储在压缩缓存区中,这

样再次访问这个被swapping的内存时仅需要解压缩,而不是从硬盘读取,这将快的多。不能压缩或压缩缓冲区满则会与硬盘进行真正的swapping。

在ESX(i)的高级设置中可以设置压缩缓存的大小等。

虚拟机内存分配VMware ESX(i)提供了三个参数来控制虚拟机的内存分配。

“限制(Limit)”限定了分配给虚拟机物理内存的上限,如果虚拟机使用的内存超过该限定值则hypervisor强制回收内存,默认

是无限制,即以虚拟机内存大小为限。虚拟机硬件设置中的内存对于大多数Guest

OS是不能热添加的,有的能热添加但是要使用添加的内存还要重启Guest OS,只有少数Guest OS能热添加并使用的,因为这个需要Guest

OS识别,因此对Guest OS要求高。但是内存限制可以在虚拟机运行时随意的调整,Guest OS无需感知是透明的。

“预留(Reservation)”是保证分配给虚拟机最低物理内存的下限,即hypervisor至多从虚拟机回收内存到预留值为止,不再继续回收,保证一个基本的内存可避免性能降低到无法忍受。

“份

额(Shares)”是当主机内存过量使用时,虚拟机可获得的物理内存是通过一个公式计算得到的,份额是其中一项。默认份额=虚拟机内存*10。公

式:ρ=份额/(活动内存+k*空闲内存),ρ就是该虚拟机可获得物理内存比例的分子,分母是所有虚拟的ρ的和。k是惩罚因子,k=1/(1-

IMT),IMT为空闲内存税(Idle Memory

Tax),默认IMT=75%,即k=4,IMT值可以在ESX(i)的高级设置中修改。显然份额越大,活动内存比例越高则ρ越大,可获得的物理内存越

多。hypervisor从ρ最小的虚拟机开始回收内存。

VMWare 只是个虚拟碧型的平台.

如果你此岁用VMware进入Linux LINUX有你电脑总共的森慧睁内存使用权

不过硬盘空间不一定.你可以设定指定的.也可以设定全盘

方法一:

1、打开虚拟机时提示报错:“物理内存不足,无法使用配置的设置开启虚拟机。要修复此问题,请将该虚拟机的内存大小减少到 *** MB、将所有虚拟机使用的物理内存量增加到 *** MB,或调整其他内存设置,以允许交换更多的虚拟机内存。

本机应用程镇弊誉序和/或服务可能已锁定内存,这将阻止虚拟机启动。关闭不需要的应用程序或服务可能可以释放足够内存来启动此虚拟机。如果您以前能够在此主机上开启该虚拟机,请尝试重新引导此主机。重新引导主机后,可用于运行虚拟机的主机内存资源也许会比现在稍微多一些。“

2、如果主机的 *** 作系统版本是 Windows 8.1 或以上,请把 VMware Workstation 升级至10.0.4版本,此版本解决了在 Win8.1 下物理内存识别出错的问题。如果在升级版本之后虚拟机仍然不能正常启动,则可参考以下所有方法,依次尝试之。

方法二:

1、重启电脑,并在电脑启动之后优先打开VMware Workstation以让虚拟机享用足够的物理内存;

方法三:

1、新建一个虚拟机(任意 *** 作系统)并启动,此时通常情况下这个新的虚拟机是可以正常运行的,之前所创建的虚拟机也可以正常运行。

方法四:

1、虚拟机的菜单“编辑”→“首选项”,在左边的选项中选择“内存”。

2、将系统为虚拟机预留的主机物理内存提升至一个“警告临界值”,也就是大于这个值的时候会提示警告:预留内存量大于针对此系统建议的最大值,可能会降低系统性能。

方法五:

1、修改虚拟机的配置参数文件:

C:\Documents and Settings\All Users\Application Data\VMware\VMware Workstation 或 C:\ProgramData\VMware\VMware Workstation 路径下的 config.ini,把 “prefvmx.useRecommendedLockedMemSize = ”设为"TRUE" “prefvmx.minVmMemPct = ”卜租改成一个足够小的数,例如“1”。

2、然后再将系统的虚拟内存提高。右键在“计算机”上点击“属性”,在左御段侧点击“高级系统设置”。选择“高级”选项卡→性能“设置”按钮,选择“高级”选项卡→虚拟内存的“更改...”按钮。

3、在此处可自行设置分配到每个硬盘分区的虚拟内存分页文件大小,“无分页文件”意味着在该分区中不分配虚拟内存分页文件,页面文件占用的大小可以自定义。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12353173.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存