虚拟机性能分析工具:Perfmon、esxtop 等使用教程

好的,各位观众老爷们,欢迎来到今天的“虚拟机性能大保健”讲座!我是你们的老朋友,人称“代码界段子手”的编程专家,今天就来跟大家聊聊虚拟机性能分析的那些事儿。

咱们程序员,最怕的就是“我的代码跑得很慢”,更怕的是“我的代码在虚拟机里跑得很慢,而且我不知道为什么”。 这时候,就像医生看病一样,我们需要借助一些“神器”来诊断虚拟机,找出性能瓶颈,然后对症下药,让虚拟机重焕青春!

今天我们要说的神器,就是大名鼎鼎的 Perfmon 和 ESXTOP。 它们就像你的随身听诊器和X光机,能帮你深入了解虚拟机的五脏六腑。

一、Perfmon:Windows Server 的性能管家

Perfmon,全称 Performance Monitor,是 Windows Server 自带的性能监视器。 别看它名字平平无奇,但功能却异常强大。 它可以实时监控 CPU、内存、磁盘、网络等各种性能指标,还能生成图表和报告,让你对虚拟机的运行状况一目了然。

1. Perfmon 的打开方式:

  • 方法一: 在搜索栏输入 "perfmon",然后回车。
  • 方法二: 按下 Win + R 键,输入 "perfmon",然后回车。
  • 方法三: 在服务器管理器中,依次点击 "工具" -> "性能监视器"。

2. Perfmon 的界面介绍:

打开 Perfmon,你会看到一个简洁明了的界面,左侧是导航栏,右侧是图表显示区域。 导航栏主要有以下几个部分:

  • 监视工具: 这是我们最常用的部分,用于实时监控性能指标。
  • 数据收集器集: 用于创建自定义的性能数据收集器,可以按照预设的规则记录性能数据。
  • 报告: 用于查看已收集的性能数据报告。

3. Perfmon 的使用方法:

(1)实时监控性能指标:

  • 在导航栏中,展开 "监视工具",然后点击 "性能监视器"。

  • 在图表显示区域,右键点击,选择 "添加计数器"。

  • 在弹出的 "添加计数器" 对话框中,选择你要监控的性能对象和计数器。

    • 性能对象: 指的是你要监控的资源,例如 CPU、内存、磁盘、网络接口等。
    • 计数器: 指的是你要监控的具体指标,例如 CPU 使用率、内存占用率、磁盘 I/O 速率、网络带宽利用率等。

    举个栗子,如果你想监控 CPU 使用率,你可以选择 "Processor" 性能对象,然后选择 "% Processor Time" 计数器。

  • 点击 "添加" 按钮,将选定的计数器添加到图表中。

  • 点击 "确定" 按钮,开始实时监控。

(2)常用性能指标推荐:

性能对象 计数器 含义
Processor % Processor Time CPU 使用率,越高表示 CPU 负载越高。
Memory Available MBytes 可用内存大小,越低表示内存资源越紧张。
Paging File % Usage 分页文件使用率,越高表示系统频繁使用硬盘作为内存,性能会下降。
PhysicalDisk % Disk Time 磁盘繁忙率,越高表示磁盘 I/O 负载越高。
PhysicalDisk Avg. Disk Queue Length 磁盘队列长度,表示等待磁盘 I/O 的请求数量,如果长时间过高,说明磁盘 I/O 存在瓶颈。
Network Interface Bytes Total/sec 网络接口的总吞吐量,越高表示网络负载越高。

(3)数据收集器集:

有时候,我们需要长时间地记录性能数据,以便进行后续分析。 这时候,就可以使用 Perfmon 的 "数据收集器集" 功能。

  • 在导航栏中,展开 "数据收集器集",然后右键点击 "用户定义",选择 "新建" -> "数据收集器集"。
  • 在弹出的 "创建新的数据收集器集" 对话框中,输入数据收集器集的名称和描述。
  • 选择 "手动创建(高级)" 选项,然后点击 "下一步"。
  • 选择 "创建数据日志" 选项,然后选择 "性能计数器",点击 "下一步"。
  • 在 "添加计数器" 对话框中,选择你要记录的性能对象和计数器。
  • 设置数据收集的频率和保存路径,然后点击 "下一步"。
  • 设置数据收集的计划,例如开始时间和停止时间,然后点击 "完成"。

创建完成后,你可以在 "数据收集器集" 中找到你创建的数据收集器,右键点击,选择 "启动" 开始收集数据。 收集完成后,你可以在指定的保存路径找到数据文件,然后使用 Perfmon 或其他工具进行分析。

4. Perfmon 的进阶技巧:

  • 使用 "警报" 功能: Perfmon 可以设置警报,当性能指标超过预设的阈值时,自动触发警报,例如发送邮件或执行脚本。
  • 使用 "报告" 功能: Perfmon 可以生成各种性能报告,例如 HTML 报告或 XML 报告,方便你进行分析和共享。
  • 结合 PowerShell 使用: 可以使用 PowerShell 脚本来自动化 Perfmon 的配置和数据收集。

二、ESXTOP:VMware ESXi 的性能利器

ESXTOP 是 VMware ESXi 自带的命令行性能监控工具。 它类似于 Linux 的 top 命令,可以实时显示 ESXi 主机和虚拟机的性能指标。 相比于 Perfmon,ESXTOP 更加底层,可以提供更详细的性能信息。

1. ESXTOP 的打开方式:

  • 方法一: 通过 SSH 客户端连接到 ESXi 主机,然后在命令行输入 "esxtop"。
  • 方法二: 通过 vSphere Client 或 vSphere Web Client 连接到 ESXi 主机,然后在 "监控" -> "性能" 选项卡中找到 "高级" 按钮,点击后会打开一个独立的 ESXTOP 窗口。

2. ESXTOP 的界面介绍:

ESXTOP 的界面是基于文本的,看起来比较简陋,但信息量却非常大。 界面分为几个不同的视图,每个视图显示不同的性能指标。

  • CPU 视图 (按 "c" 键切换): 显示 CPU 使用率、就绪时间等信息。
  • 内存视图 (按 "m" 键切换): 显示内存使用率、交换空间使用率等信息。
  • 磁盘视图 (按 "d" 键切换): 显示磁盘 I/O 速率、延迟等信息。
  • 网络视图 (按 "n" 键切换): 显示网络吞吐量、丢包率等信息。
  • 虚拟机视图 (按 "v" 键切换): 显示每个虚拟机的 CPU、内存、磁盘、网络使用情况。

3. ESXTOP 的使用方法:

ESXTOP 的操作主要通过键盘快捷键来完成。

  • 切换视图: 使用 "c"、"m"、"d"、"n"、"v" 等键切换到不同的视图。
  • 排序: 使用 "f" 键选择排序的字段,然后使用 "空格键" 切换升序或降序。
  • 过滤: 使用 "l" 键过滤显示的虚拟机或进程。
  • 改变刷新频率: 使用 "s" 键改变刷新频率。
  • 保存数据: 使用 "b" 键进入批处理模式,将数据保存到文件中。
  • 退出: 使用 "q" 键退出 ESXTOP。

4. ESXTOP 的常用性能指标:

视图 指标 含义
CPU %USED CPU 使用率,越高表示 CPU 负载越高。
CPU %RDY CPU 就绪时间,表示虚拟机等待 CPU 资源的时间百分比,如果长时间过高,说明 CPU 资源存在瓶颈。
MEM %MEMUSED 内存使用率,越高表示内存资源越紧张。
MEM SWAPOUT 交换空间换出速率,越高表示系统频繁使用硬盘作为内存,性能会下降。
DSKT DAVG/cmd 磁盘设备延迟,表示从发出 I/O 请求到设备完成的时间,单位是毫秒,如果过高,说明磁盘设备存在瓶颈。
DSKT KAVG/cmd 内核延迟,表示 I/O 请求在 ESXi 内核中等待的时间,单位是毫秒,如果过高,说明 ESXi 内核存在瓶颈。
NET %DRPTX 发送丢包率,越高表示网络拥塞越严重。
NET %DRPRX 接收丢包率,越高表示网络拥塞越严重。

5. ESXTOP 的进阶技巧:

  • 使用批处理模式: 可以使用 "esxtop -b" 命令进入批处理模式,将数据保存到文件中,然后使用 Perfmon 或其他工具进行分析。
  • 结合 vSphere CLI 使用: 可以使用 vSphere CLI 命令来远程执行 ESXTOP,并将数据保存到文件中。
  • 使用 Resxtop: Resxtop 是一个图形化的 ESXTOP 工具,可以提供更直观的性能监控界面。

三、性能分析案例:

说了这么多理论,咱们来个实战案例,看看如何使用 Perfmon 和 ESXTOP 来诊断虚拟机性能问题。

案例: 某虚拟机运行缓慢,用户反馈操作卡顿。

分析步骤:

  1. 使用 Perfmon 监控虚拟机内部的性能指标:

    • 监控 CPU 使用率、内存占用率、磁盘 I/O 速率、网络带宽利用率等指标。
    • 观察是否有任何指标长时间处于高位。

    假设我们发现 CPU 使用率长时间接近 100%,说明 CPU 资源存在瓶颈。

  2. 使用 ESXTOP 监控 ESXi 主机的性能指标:

    • 切换到 CPU 视图,查看虚拟机的 CPU 就绪时间 (%RDY)。
    • 如果 CPU 就绪时间过高,说明虚拟机在等待 CPU 资源,可能是因为 ESXi 主机的 CPU 资源不足,或者其他虚拟机占用了过多的 CPU 资源。

    假设我们发现虚拟机的 CPU 就绪时间很高,同时 ESXi 主机的 CPU 使用率也很高,说明 ESXi 主机的 CPU 资源不足。

  3. 解决方案:

    • 增加 ESXi 主机的 CPU 资源: 可以通过增加 CPU 核心数或提高 CPU 频率来增加 ESXi 主机的 CPU 资源。
    • 优化虚拟机的 CPU 配置: 可以减少虚拟机的 CPU 核心数,或者调整 CPU 资源的分配策略。
    • 迁移虚拟机到其他 ESXi 主机: 可以将虚拟机迁移到其他 CPU 资源更充足的 ESXi 主机上。

四、总结:

Perfmon 和 ESXTOP 是虚拟机性能分析的利器,掌握它们的使用方法,可以帮助你快速定位性能问题,并采取相应的措施来优化虚拟机性能。 当然,性能分析是一个复杂的过程,需要结合实际情况进行判断和分析。

希望今天的讲座对大家有所帮助! 如果你觉得有用,记得点赞、评论、转发哦! 咱们下次再见! 😉

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注