微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

虚拟内存回收

VM与操作系统处理内存分配和释放以相同的方式执行内存分配。客户机操作系统通过向访客空闲列表添加内存页码来释放一块物理内存。

虚拟机管理程序无法访问客户操作系统的空闲列表; 因此,管理程序很难知道何时释放主机物理内存以及何时需要释放客户物理内存。管理程序完全不知道哪些页面是空闲的或分配给客户操作系统,因此,当客户操作系统释放客户物理内存时,它无法回收主机物理内存。

因此,VMware虚拟机管理程序依赖于内存回收技术来回收客户机操作系统释放的主机物理内存。这些是内存回收技术:

透明页面共享(TPS)内存膨胀主机级(或虚拟机管理程序)交换

如何做呢

您不需要执行任何操作来启用,因为认情况下在ESXi虚拟机管理程序上启用它。

内存膨胀由VMware Tools软件驱动,因此您需要在所有VM上安装它。它将加载vmmemctl驱动程序,该驱动程序负责内存膨胀。

如果未安装VMware Tools或已过期,请执行以下步骤:

登录VMware vSphere Web Client。在VM清单中,右键单击VM,选择Guest OS,然后单击Install VMware Tools或Upgrade VMware Tools。转到VM控制台并按照屏幕上的说明安装或升级它。同样,认情况下启用主机级或管理程序交换。您无需执行任何其他步骤即可启用它。

TPS

当在同一个Hypervisor上运行多个VM时,大多数情况下,其中一些虚拟机可能具有相同的内存内容集(称为内存页)。这为跨VM共享内存创造了机会。ESXi Hypervisor可以回收冗余副本,并且只使用TPS保留一个副本。您可以将其视为内存重复数据删除

传统上,在x86系统中,内存被分成4千字节的页面,只有在使用带有影子页面表的小页面时才会发生这种情况。TPS过程每60分钟运行一次。它扫描所有内存页面并为每个内存页面计算哈希值。这些哈希值保存在单独的表中,并由内核进行相互比较。每次ESXi内核找到两个相同的哈希值时,它都会开始逐位比较相应的内存页面。如果这些页面完全相同,则内核只在内存中留下一个页面副本,并删除第二个页面。当您的一个VM请求写入此页面时,内核会创建一个页面,因为一个VM所做的更改不得影响另一个VM的内存内容

VMware ESXi通过Mem.ShareScanTime以随机指定的基本扫描速率随机扫描客户机物理页面。还可以在ESXi的高级设置中指定主机中每秒扫描的最大页数和每个VM扫描页面的最大数(即Mem.ShareScanGHz和Mem.ShareRateMax)。

Memory ballooning

Memory ballooning告诉客户机操作系统它没有足够的主机内存,以便客户机操作系统可以释放一些内存。当存在内存危机时,管理程序会告知balloon驱动程序从客户操作系统请求一定数量的兆字节。管理程序知道balloon驱动程序占用的页面永远不会存储数据,因此balloon驱动程序请求的pRAM页面可以安全地重新分配给其他VM。客户操作系统的调用决定了它应该分配给balloon驱动程序的哪些vRAM页面。如果它有足够的空闲客户物理内存,则不会引起客户级分页,因此不会影响客户端性能,除非客户内存争用。

Balloon驱动程序使用Idle Memory TaxIMT)回收客户操作系统的已分配内存。IMT可以回收高达75%的空闲内存。客户操作系统页面文件是必需的,以防止客户操作系统内核不足。vmmemctl由于严重的主机争用,驱动程序应积极回收内存(确保客户机操作系统页面文件至少为配置的vRAM的65%)。即使在这里,客户操作系统也可以对未来最不可能请求哪些页面的数据进行智能猜测。(您将看到这与管理程序级交换相反,后面将对此进行讨论。)请查看以下内存页映射到主机内存的图示:

在TPS和Ballooning期间,ESXi中的主机级交换不足以回收内存。为了支持这一点,当您启动VM时,虚拟机管理程序会为VM创建单独的交换文件。这主要是因为如果它为其他VM释放pRAM,管理程序可以直接用交换文件交换vRAM。

交换是一种保证在特定时间内回收特定内存量的技术。但是,您应该关注主机级别的交换,因为它会严重影响客户端性能。当管理程序不知道应交换哪些客户机物理页面时,会发生这种情况,并且交换可能会导致与客户机操作系统中的本机内存管理策略发生意外交互。以下是主机级内存页面交换的图形表示:

原文地址:https://www.toutiao.com/article/6687794625207337479/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


谷歌翻译不能用了怎么办?最近有很多用户发现谷歌浏览器翻译功能不能使用了,这个该怎么解决呢,这里小编为大家提供两种解决方法。一种是通过修改操作系统的 hosts 文件,将 API 所使用的域名映射到一个可用的 IP 上
ios17有不少新功能,此次更新重点升级了电话和短信的功能,新增了联系人海报、音频消息转文字、check in等新功能,同时还带来了独立的手记功能“Journal”,可标记重要时刻,以及在待机中增加了“Standby”模式,可横
什么是IP地址?IP地址有什么用? 很简单,IP是整个TCP/IP协议族的核心,也是构成互联网的基础。
网上找到的动图下载到本地保存时格式却成了webp,想要发表情包却成了发短视频了,怎么解决这个问题呢?其实只需要将webp格式转为gif格式就好啦,下面小编带大家来看一下怎么转。
小米手机一开相机就死机怎么处理? 处理手机一开相机就死机的操作步骤:打开设置-应用程序-相机-清除数据试试;
充电宝押金什么时候可以退?具体操作充电宝退押金的操作步骤如下:1、打开微信里面的小程序进入街电小程序
学信网可以查到入团准确信息吗?学信网查不到入团时间。入团准确时间查询有以下方法:1、查看团员证。团员证上清楚的写着入团时间,只要找到团员证,马上就能查自己的入团时间了。
如果忽然遇到系统运行出现慢的问题,我们就会检查一下任务管理中是否有占用系统资源的进程在作怪,而在任务管理器中发现一个很占CPU使用率的程序-rundll32.exe,但是通过杀毒软件却没有任何用。
什么是bs机
OTG打开没反应怎么办