从内存告警谈ESXi主机内存管理——VM内存介绍

日期: 2012-09-16 作者:张冀川 来源:TechTarget中国

在上篇文章《从内存告警谈ESXi主机内存管理——内存构成》中,我们主要介绍了ESXi主机内存构成和虚拟机内存构成,这里我们继续进行虚拟机内存介绍。   每台虚拟机的内存部分包括了两个方面的内容:主机内存、客户机内存。这几个概念看起来有些令人迷惑,我们简单介绍一下。 表格1. 主机内存  参数   含义  已消耗  已分配给虚拟机的物理内存的实际消耗量 开销消耗  用于虚拟化目的的已消耗内存量   在上图中4,主机内存已消耗的大小为11.91GB,这和图3中的12195MB是完全相同的。

  在运行过程中除了消耗为其分配的内存外,每个虚……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

在上篇文章《从内存告警谈ESXi主机内存管理——内存构成》中,我们主要介绍了ESXi主机内存构成和虚拟机内存构成,这里我们继续进行虚拟机内存介绍。

  每台虚拟机的内存部分包括了两个方面的内容:主机内存、客户机内存。这几个概念看起来有些令人迷惑,我们简单介绍一下。

表格1. 主机内存

 参数

  含义

 已消耗

 已分配给虚拟机的物理内存的实际消耗量

 开销消耗

 用于虚拟化目的的已消耗内存量

  在上图中4,主机内存已消耗的大小为11.91GB,这和图3中的12195MB是完全相同的。

  在运行过程中除了消耗为其分配的内存外,每个虚拟机还会消耗额外的开销内存以用于虚拟化。开销内存包括为虚拟机框架缓冲区和各种虚拟化数据结构(如卷影页表)预留的空间。开销内存的大小取决于虚拟CPU 数量,为客户机操作系统配置的内存以及虚拟机的工作负载。在上图4中这台虚拟机的内存开销已经达到了1.13GB。

表格2. 客户机内存

 参数

含义 

 专用 受主机内存支持且没有共享的内存量

 已共享       

 共享的内存量。vSphere采用透明页共享(transparent page sharing)技术实现了虚拟机内存的共享,因此在虚拟机中运行的工作负载消耗的内存通常要少于其在物理机上运行时所需的内存,能够高效地支持更高级别的过载。

 缩减量 压缩缓存中的内存量。vSphere提供了内存压缩缓存,能够在内存过载使用时改进虚拟机性能
虚拟增长 

 通过虚拟增长回收的内存量。vSphere利用内存虚拟增长驱动程序 (vmmemctl) 与服务器协作回收客户机操作系统认为最不重要的页面

 已交换

 通过交换回收的内存量。当 vmmemctl 驱动程序不可用或未响应时,vSphere会使用交换从虚拟机中强制回收内存

 未访问过 客户机从未访问过的内存量
 活动 客户机最近访问过的内存量

  利用性能图表监视虚拟机内存使用

  理解了上述概念将有利于我们开展虚拟机的性能调整工作。图4中看到的信息都是静态信息,为了获取虚拟机内存使用情况的动态信息,为内存调整提供依据,我们可以利用性能高级图表实时查看虚拟机内存使用情况,也可以查看在过去一天、一周乃至更长时间的虚拟机内存使用情况。下图5列出了在过去一个小时内虚拟机内存的实时使用情况,从下图中可以看到:

  1.授权量大于消耗量,但两个值差距不大,所以为虚拟机分配的内存大小是合理的。

  2.在过去的一个小时内,没有虚拟增长和已交换活动的发生,虚拟机运行状况稳定。

图5.利用性能监视图表查看虚拟机内存使用情况
 
图5.利用性能监视图表查看虚拟机内存使用情况

  虚拟机内存调整建议

  在了解了ESXi主机、虚拟机内存的构成及相关概念并获取了虚拟机内存的动态性能视图后,我们就可以对虚拟机的内存进行调整了,本文给出的虚拟机内存调整建议如下:

  (1)我们应该针对虚拟机的运行情况对虚拟机的内存进行调整:在创建虚拟机时,为虚拟机配置的内存大小(图5中虚拟机内存的授权量)必须稍大于客户机内存平均使用情况(图5虚拟机内存中已消耗大小),这将使虚拟机能够适应工作负载高峰,而不需在客户机之间交换内存。

  (2)不应该为虚拟机分配过大的内存大小,这将会导致更多内存使用情况开销,如图4中虚拟机的内存开销已经达到了1.13GB。

  (3)如果内存释放活动(图5中虚拟增长参数)幅度大,但所有虚拟机的内存充足,则说明虚拟机并未受到内存方面的限制。如果内存释放活动幅度大,且客户操作系统正在交换内存(图5中已交换参数),那么说明虚拟机已经受到了内存方面的限制,此时要分两种情况考虑:

  1.如果ESXi主机的可用内存等于或少于 6%,则表示ESXi主机无法满足内存需求,这将导致可能会降低性能的内存回收,此时应该将运行的虚拟机迁移到集群中的其他主机中。

  2.如果ESXi主机具有足够的可用内存,则在主机上检查虚拟机和资源池的资源份额、预留和限制。确保主机设置的值足够大,而且不低于为虚拟机设置的相应值。

  增强虚拟机性能建议

  (1)如果为虚拟机配置的内存太大,则应减少为虚拟机配置的内存大小,并更正缓存大小,这将为其他虚拟机提供更多的内存。

  (2)如果虚拟机的内存预留值设置大大高于活动内存设置,则减少预留设置,以便 VMkernel 可以回收空闲内存供主机上其他虚拟机使用。

  (3)验证是否在虚拟机上安装了VMware Tools。虚拟增长驱动程序与VMware Tools一起安装,它对性能而言至关重要。

  (4)验证是否启用了虚拟增长驱动程序。通过虚拟增长和交换,VMkernel定期回收没有使用的虚拟机内存,通常这不影响虚拟机性能。

  (5)将一个或多个虚拟机迁移到群集中的其它主机上。

  (6)如果上述措施都不能解决问题,那么可以考虑为ESXi主机增加物理内存了。

作者

张冀川
张冀川

TechTarget中国特约专家,任职于某国企信息中心,负责数据中心硬件基础设施及信息系统运维管理工作,对虚拟化及云计算技术有浓厚兴趣,并在工作中积极应用

相关推荐