首页 > 系统相关 >【VMware ESXi】如何查看启用内存分层功能的 ESXi 主机使用了多少 NVMe 内存。

【VMware ESXi】如何查看启用内存分层功能的 ESXi 主机使用了多少 NVMe 内存。

时间:2024-09-24 16:25:45浏览次数:9  
标签:输出 ESXi 虚拟机 分层 内存 NVMe

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 -r vmtier-stats

上面是不加任何选项使用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)"

标签:输出,ESXi,虚拟机,分层,内存,NVMe
From: https://www.cnblogs.com/juniormu/p/18429036

相关文章

  • JVM内存区域详解及DirectByteBuffer内存
    Java虚拟机(JVM)是Java程序运行的基础,它为Java程序提供了一个与平台无关的执行环境。JVM内存区域的划分对于理解Java程序的运行机制至关重要。本文将详细介绍JVM的内存区域,并探讨对外内存中的DirectByteBuffer。方法区(MethodArea)方法区是JVM中所有线程共享的内存区域。它主......
  • E33.【C语言】数据在内存中的存储练习集(未完)
    1.求下列代码的打印结果#include<stdio.h>intmain(){ chara=-1; signedcharb=-1; unsignedcharc=-1; printf("a=%d,b=%d,c=%d",a,b,c); return0;}答案速查分析之前讲过,char在VS中默认为signedchar,则a和b的打印结果应该是一样的存储范围:si......
  • redisson内存泄漏问题排查
    问题描述最近生产有个服务突然出现频繁告警,接口P99响应时间变长,运维同学观察到相应的podcpu飙升,内存占用很高。cpu升高问题排查是老生常谈的话题了,一般可以使用top-ppid-H查看是哪个线程占用cpu高,再结合jstack找到对应的java线程代码。不过经验告诉我们,cpu升高还有另外一个......
  • 动态内存管理
    1.为什么要有动态内存分配我们已经掌握的内存开辟方式有:intval=20;//在栈空间上开辟四个字节chararr[10]={0};//在栈空间上开辟10个字节的连续空间但是上述的开辟空间的方式有两个特点:•空间开辟大小是固定的。•数组在申明的时候,必须指定数组的长......
  • 【C++】9.内存管理
    文章目录1.C/C++内存分布2.C语言中动态内存管理方式:malloc/calloc/realloc/free3.C++内存管理方式3.1new/delete操作内置类型3.2new和delete操作自定义类型4.operatornew与operatordelete函数(重点)4.1operatornew与operatordelete函数(重点)5.new和delete的实......
  • 动态内存管理
    目录动态内存分配的需求 malloc函数与free函数 malloc函数free函数示例calloc函数和realloc函数calloc函数realloc函数动态内存分配的需求intval=20;//在栈空间上开辟四个字节chararr[10]={0};//在栈空间上开辟10个字节的连续空间1.空间开辟大小是固定......
  • VMware vSphere ESXi7.0、8.0密钥
    VMwarevSphere7.x   **vSphereESXi7.0EnterprisePlus**=======================================   JJ2WR-25L9P-H71A8-6J20P-C0K3F   HN2X0-0DH5M-M78Q1-780HH-CN214   JH09A-2YL84-M7EC8-FL0K2-3N2J2=======================================   **vC......
  • 阿里面试让聊一聊Redis 的内存淘汰(驱逐)策略
    大家好,我是V哥,粉丝小A面试阿里,说被问到Redis的内存淘汰策略的问题,整理这个笔记给他参考,也分享给大家,如果你遇到这个问题,会怎么回答呢?Redis的内存淘汰策略是指当Redis的内存使用量达到设定的上限时,决定哪些数据应该被移除以便为新数据腾出空间的规则。Redis提供了多种内存淘......
  • 如何选择反射内存卡
    选择反射内存卡时,需要考虑以下几个关键因素:1. 传输速度和延迟:根据您的应用对数据实时性的要求,选择具有合适传输速度和低延迟的反射内存卡。如果是对时间要求极为苛刻的系统,如航空航天仿真、高速工业控制等,应优先选择具有纳秒级延迟和高传输速率的产品。2. 内存容量:确定所需的内存......
  • 反射内存卡驱动的安装
    反射内存卡驱动的安装通常遵循以下一般步骤,但具体过程可能因产品型号和操作系统的不同而有所差异:1. 准备工作2.解压驱动文件-将下载的驱动压缩包解压到一个您容易访问的文件夹。3.关闭可能干扰安装的程序-关闭防软件、防火墙和其他可能阻止驱动安装的安全程序。4.运行安......