如何使用esxtop工具确定VMware ESX内存使用情况?

日期: 2009-04-06 作者:Gabrie van Zanten翻译:于富春 来源:TechTarget中国 英文

作为VMware的系统管理员,您可以在VMware基础设施客户端(VI客户端)中监视内存的使用情况 。您还可以潜在地自由支配您在整个虚拟基础设施中的很多内存,通过使用VMware esxtop工具和安全shell (SSH)客户端,以了解哪些虚拟机和程序在使用内存并作出适当的改变。   在本文中,TechTarget中国的特约专家Gabrie van Zanten将介绍VMware如何利用内存,如何使用esxtop工具获取关于基础设施内存使用情况的详细统计资料,以及透明页共享(TPS)和膨胀(ballooning)如何共同努力,以最大化利用可用内存。   从VMware基础设施的客户端检查内存……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

作为VMware的系统管理员,您可以在VMware基础设施客户端(VI客户端)中监视内存的使用情况 。您还可以潜在地自由支配您在整个虚拟基础设施中的很多内存,通过使用VMware esxtop工具和安全shell (SSH)客户端,以了解哪些虚拟机和程序在使用内存并作出适当的改变。

  在本文中,TechTarget中国的特约专家Gabrie van Zanten将介绍VMware如何利用内存,如何使用esxtop工具获取关于基础设施内存使用情况的详细统计资料,以及透明页共享(TPS)和膨胀(ballooning)如何共同努力,以最大化利用可用内存。

  从VMware基础设施的客户端检查内存

  比如,我已从64GB的物理内存上运行着29台虚拟机的主机上截取了一系列截图。在第一个屏幕截图,我们在VMware基础设施客户端上 ,选择主机并查看概要表。在右上角,我们看到“资源”部分。以下图片显示,64GB的物理内存被使用了41.06GB。

物理内存 

  从这个图像,我们可以看到,64GB的可用内存中有41.06GB内存正在被使用。但难道你不想知道哪一个进程或虚拟机使用了这41.06GB吗?为了找到答案,我们会使用PuTTY作为我们的SSH客户端来运行VMware的esxtop工具。

  让我们开始一个PuTTY会话。登录,输入esxtop命令并按下M键以定位到内存标签。屏幕上方显示出了大量有关您主机内存使用情况的信息。

  让我们从顶端开始分析它。

  物理内存

MEM

  MEM的平均超额告诉我们,在过去5至15分钟内,内存的平均超额。值为0.20的意思是超额使用了20 %的内存。第二行中,我们看到PMEM统计资料,说明主机拥有的物理内存。此主机有65534MB(或63.99 GB) ,其中800兆是分配给cos(即服务控制台) ; 672MB正在被VMkernel使用和40437MB(或39.489GB的)被“other“使用,这就可以空余出23624MB的可用内存。

  注意:“other”使用的内存被官方描述为: “除掉ESX服务控制台和ESX VMkernel以外的一切 。 ”它不一定是所有的VM消耗的内存。例如每个VM也有内存的开销。内存开销的总量取决于客户操作系统的类型、虚拟的CPU的数量、被配置的内存量和客户系统是32位还是64位。例如,一个拥有2048MB内存的双CPU虚拟机,客户机是32位系统的话将有126MB额外开销,如果是64位系统将有163MB额外开销。

  服务控制台内存

服务控制台
 
  下一行关于VMKMEM的不是那么重要,虽然它的确告诉你VMkernel如何执行的。但是,除非你排除的故障是不寻常的问题,否则你将不会觉得这些是有价值的数据。更有价值的是显示服务控制台(cos)当前的状态,详细的数据在下一行。第一个有价值的(在这种情况下,免费)是在控制台中闲置的内存数量。在这个例子中,该cos在已分配的800MB中还有92MB内存可以使用。接下来,我们看到的是已配置的交换空间和可用的交换空间大小,这两个值都是1600MB。通常情况下,我为主机配置为1600MB的交换分区和800MB的控制台内存。

  显然800MB看起来就足够了,第三方插件通常在控制台运行,因此默认的272MB的内存是不够的。在这种情况下,你想提高cos内存并将其设置为800MB。你可以把它设置更高一些,但你可能会超过分区空间。因此,最多只可以给控制台分配1600MB,我总是设置swap分区为1600MB。这是最佳的执行方式,所以我没有立刻调整swap分区。

  透明页共享(TPS)

透明页共享

  回到我们的例子中,非一致性存储器访问,或NUMA技术,具有广泛的使用价值。正如有了VMkernel,你根本不必担心这些。这只能展示给你ESX是如何通过NUMA节点(如果您有NUMA技术,这就是)分配内存,但这些都不是你的工作所要关注的。要更加重视PSHARE行。这行可以告诉我们通过透明页共享(TPS)技术能节省多少内存,这个值在某些环境中可能是相当大的。在我们的例子中,虚拟机共享了32492MB内存,其中的3779MB是通用的,这使我们节省了28713MB(或28GB)的内存。

  让我以不同的方式来解释这个。在这台主机上,总数为32492MB的内存,与大量子机的值相同。通过透明网共享技术,ESX只需要3779MB就可以”存储”32492MB的东西。因此,我们节省28713MB内存。在我看来,在一台单个主机上,这是非常大量的内存。试想一下,这可以为您的整个虚拟环境节省多少空间。

  什么是透明页共享?

  VMware公司的ESX使用透明页共享可以节省大量的物理内存,尤其是在在(虚拟)环境中使用很多类似的操作系统。虚拟层(Hypervisor)将检查虚拟机想写到物理内存的每一个内存块。如果那个内存块与物理内存中已经保存的一个内存块相同,那么就没有必要使用额外的物理内存。相反,ESX只是设置了一个指针并记住这个区块被其他虚拟机使用。只要虚拟机是读这块内存并且永远不去改变,那么该内存块就保存一份。ESX将利用这一块内存,直到VM想要进行修改(写入此内存块) 。当发生这种情况, ESX会创建一个附加的副本。

  举个例子,当安装完Windows Server 2003系统,我们可以看到,一个没有任何额外的应用程序的Windows基本安装,启动后将只是占据250 MB内存。现在假设我运行20台Windows虚拟机的在同一个虚拟层上。 20个Windows的实例,每个需要250MB内存,没有TPS功能的话,就总共要消耗总数为5000MB的RAM(物理内存) 。但是具备TPS功能, 250MB将被储存到物理内存中并被使用。换言之,内存节省了5750MB。这件事情是不可以轻视的。

VMware ESX内存

  交换内存

交换内存

  这听起来奇怪,但我相信这两个SWAPS和MEMCTL数字应该是0 。让我来解释一下它们是什么:

  1. SWAP值显示ESX服务器的交换内存使用统计情况,“cur”是当前的互换使用, “target”是ESX预计互换多少以及“ R/S”和“W/s”显示当前交换的速度。
  2. MEMCTL显示的是利用vmmemctl模块或balloondriver(当前)回收的物理内存总数,ESX试图收回(target)和ESX最高可以收回(max)。

  现在,它们为什么应该为零?简单地说,因为它们都表明ESX没有足够的内存分配给子机。当资源越来越稀缺时,ESX想做的第一件事情是从客户操作系统那里收回不太宝贵的内存。由于的ESX不能直接与客户操作系统对话,它使用VMware工具memctl-driver来做这件事情。

  膨胀(Ballooning)

  当VMware ESX耗尽了子虚拟机的空间,ESX在需要内存的子虚拟机中启动一个进程,此进程会申请内存。这个虚拟机操作系统然后检查列表,看看是否有空闲的内存。如果有,它将会分配给这个进程。下一步, VMware的工具将占用这些内存,并告知ESX到底哪些内存块它可以分配给其他的虚拟机。通过这种方式,将其他虚拟机未使用的内存挤出,提供给这些需要更多内存的虚拟机

  交换到磁盘

  如果膨胀的技术没有效,ESX将利用最后的手段:交换虚拟机的内存到磁盘上。由于磁盘的读写速度总是远远低于物理内存,虚拟机会发现性能下降,这不是我们想要的方式。

  因此,当你看到SWAP curr或者 MEMCTRL curr指标当前高于零,就应该真正开始调查哪些是错误的。作为一个经验法则,您不应该消耗您ESX内存载入超过80%或85%。这样当虚拟机开始使用更多的物理内存时,你总是有剩余的内存。此外,在配有VMware高可用性的集群中,您的ESX主机载入超过80%到85%的内存时可能让你陷入困境。

相关推荐

  • VMware快照工作原理以及如何运用

    当你更新或修复应用程序和服务器时,VMware快照无疑是你的救星。而如果你负责监管虚拟环境,你更是应该知道什么 […]

  • 配置ESXi Autostart,自动打补丁

    顾名思义,VMware ESXi Autostart能够实现自动开启、关闭ESXi服务器上的虚拟机,让虚拟机管理变得更轻松。如果运行了多个虚拟机并且给主机打补丁后需要重启主机,那么ESXi Autostart的作用就更大了,没有Autostart的话,你需要在给主机打补丁后,手动重启每个虚拟机。

  • 推荐一款好的虚拟主机提供商

    推荐一款好的虚拟主机提供商 推荐理由:   第一:种类多:有经济型,全能型,功能型等   […]

  • 哪里的虚拟主机最便宜?

    鱼和熊掌不可兼得, 想要找即便宜又好用的虚拟谁有办法? 我来推荐一款,可以了解 新网云虚拟主机一年只要1元钱 […]