VMware vSphere 8 U3 中作为技能预览所引入的功能“内存分层(Memory Tiering)”,信赖大家已经在自己的测试或实行环境中应用并验证了,假如你还不知道,请跳转到这篇(把硬盘当内存用?VMware 内存分层(Memory Tiering),你值得拥有!)文章了解相干介绍以及怎样启用它。需要注意的是,目前在启用内存分层功能的 ESXi 主机上无法创建虚拟机的“内存”快照,即只能创建虚拟机平凡快照。有关更多关于内存分层的内容,请查看 VMware KB 95944 末尾处的技能指南。
怎样查看有关内存分层(Memory Tiering)功能的配置信息?假如环境中有 vCenter Server,导航到 vCenter Server(vSphere Client)->启用了内存分层的 ESXi 主机->配置->硬件->概览,可以在“内存”信息栏中看到我们所配置的内存分层信息,层 0(Tier 0)表示物理内存(DRAM)容量,层 1(Tier 1)表示配置为内层分层的 NVMe 存储容量。
我信赖你跟我一样有一个疑问,在启用了内存分层功能的 ESXi 主机上,怎样知道虚拟机有没有利用 NVMe 存储内存?并且到底利用了多少 NVMe 内存容量?如今,刚好 VMware by Broadcom 工程师 William Lam 发布了这篇(How much Virtual Machine memory is using NVMe Tiering?)文章,下面一起来了解一下。
通过 SSH 毗连到 ESXi 主机,利用memstats命令并选择vmtier-stats输出类型可查看 ESXi 主机上运行虚拟机所占用的 NVMe 内存。
利用memstats命令具有很多选项,可以利用-h查看命令帮助。常用的有,-r指定输出类型,比如这里指定 vmtier-stats,差别的输出类型具有差别命令选项。-q选项将输出的结果以 CSV 格式显示,而不是默认的表格样式;-s选项输出指定的列,而不是全部输出;-u选项指定输出结果的单元,有 gb、mb、 kb、pg 单元可选,默认是 kb。
上面是不加任何选项利用memstats输出vmtier-stats的结果,假如加上相干选项,我们可以得到以下输出。这里利用了-s选项指定了我们想要的列,利用了-u选项将输出结果的单元修改为 mb 显示。下面说一下输出列所代表的含义,“name”列表示 ESXi 主机上正在运行的虚拟机,不过是以 VM Cartel ID 情势显示;“memSize”列表示虚拟机分配的内存大小;“active”列表示虚拟机当前的活动内存;“tier0Consumed”列表示虚拟机占用的物理内存(DRAM)大小,“tier1Consumed”列表示虚拟机占用的 NVMe 内存大小。从输出的结果可以看到,ESXi 主机上一共运行了 11 个虚拟机,其中一共占用了物理内存(DRAM)大小为 139793 mb,大概 135 gb 左右,而 NVMe 内存的大小一共占用了 470 mb,大概 1 gb 左右。当前 NVMe 内存所占用的容量非常少,可能是由于虚拟机现实利用的内存比力少,而当前物理内存(DRAM)容量比力多的原因导致的,这样的话就没须要将更多活动内存放在 NVMe 内存上,而更多的放在物理内存(DRAM)上,以充分包管虚拟机的性能。- memstats -r vmtier-stats -u mb -s name:memSize:active:tier0Consumed:tier1Consumed
复制代码
根据上面所输出的结果,虚拟机“name”列是以 VM Cartel ID 情势显示的,这样的话就不知道谁人 VM Cartel ID 对应现实环境中谁人虚拟机名字了。但是,我们可以通过命令生成 VM Cartel ID 与现实虚拟机名字的对应关系,然后再将该文件带入到memstats命令中去,这样就可以显示现实虚拟机的名字了。- esxcli --formatter csv vm process list | awk -F ',' '{print $2,$5}' > /tmp/vms
复制代码
利用新的命令进行查看。- memstats -r vmtier-stats -u mb -s name:memSize:active:tier0Consumed:tier1Consumed | sed "$(while read -r name id; do echo "s/vm.$id/$name/g"; done < /tmp/vms)"
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |