磁盘速率图表显示虚拟机的磁盘使用情况。

此图表位于虚拟机性能选项卡的主页视图中。它仅在采用集合级别 3 和 4 时可用。

表 1. 数据计数器
图表标签 描述
虚拟机的每个虚拟磁盘上每秒完成的磁盘读取命令次数。所有磁盘每秒读取命令的总数也显示在图表中。

读取速度 = 读取的块/秒 × 块大小

  • 计数器:read
  • 统计类型:比率
  • 单位:千字节/秒 (KBps)
  • 汇总类型:平均值
  • 集合级别:2
虚拟机的每个虚拟磁盘上每秒完成的磁盘写入命令次数。所有磁盘每秒写入命令的总数也显示在图表中。

写入速度 = 写入的块/秒 × 块大小

  • 计数器:write
  • 统计类型:比率
  • 单位:千字节/秒 (KBps)
  • 汇总类型:平均值
  • 集合级别:2

图表分析

使用磁盘图表监控平均磁盘负载并确定磁盘使用情况趋势。例如,您可能注意到频繁读写硬盘的应用程序的性能降低。如果在磁盘读写请求次数记录中看见高峰,请检查当时是否有任何此类应用程序正在运行。

确定 vSphere 环境是否遇到磁盘问题的最佳方式是监控磁盘延迟数据计数器。可以使用高级性能图表查看这些统计信息。

  • kernelLatency 数据计数器测量平均时间量(单位为毫秒),该时间是 VMkernel 处理每个 SCSI 命令花费的时间。为获得最佳性能,此值必须为 0-1 毫秒。如果此值大于 4 毫秒,则说明主机上的虚拟机正在尝试将大于配置支持的吞吐量发送到存储系统。检查 CPU 使用情况,并增加队列深度。
  • deviceLatency 数据计数器测量平均时间量(单位为毫秒),该时间是从物理设备完成 SCSI 命令所需的时间。大于 15 毫秒的数字表示存储阵列可能有问题,具体情况视硬件而定。将活动 VMDK 移动到具有更多心轴的卷,或将磁盘添加到 LUN。
  • queueLatency 数据计数器测量平均时间量,该时间是 VMkernel 队列中每个 SCSI 命令所需的时间。此值必须始终是零。如果不是零,则表明负载过高,并且阵列无法足够快速地处理数据。

如果磁盘延迟值很高,或者如果您注意到其他磁盘 I/O 性能问题,则考虑采取以下操作。

表 2. 磁盘 I/O 性能增强建议
# 解决方案
1

增加虚拟机内存。它允许更多的操作系统缓存,可以减少 I/O 活动。注意:可能还需要增加主机内存。增加内存可以减少存储数据的需要,因为数据库可以利用系统内存来缓存数据,从而避免访问磁盘。

通过在客户机操作系统中检查交换统计信息,验证虚拟机是否有足够的内存。增加客户机内存,但注意不要导致主机内存交换过多。安装 VMware Tools,以便内存可以膨胀。

2 在所有客户机上整理文件系统碎片。
3 停用 VMDK 和 VMEM 文件上的防病毒按需扫描。
4 使用供应商的阵列工具确定阵列性能统计信息。当过多的服务器同时访问阵列上的常见元素时,磁盘可能无法正常工作。要增加吞吐量,请考虑阵列侧的改进。
5 使用 Storage vMotion 跨多个主机迁移 I/O 密集型虚拟机。
6 在所有可用物理资源上均衡磁盘负载。在由不同适配器访问的 LUN 上分散使用率高的存储。为每个适配器使用单独队列可改进磁盘效率。
7 配置 HBA 和 RAID 控制器以达到最佳状态。验证 RAID 控制器上的队列深度和缓存设置是否足够。如果不足够,则通过调整 Disk.SchedNumReqOutstanding 参数,为虚拟机增加待处理磁盘请求数。有关详细信息,请参见《vSphere 存储》
8 对于资源密集型虚拟机,将虚拟机的物理磁盘驱动器与具有系统页面文件的驱动器分离。这在密集使用期间可减轻磁盘心轴冲突。
9 在具有相当大 RAM 的系统上,通过将行 MemTrimRate=0 添加到虚拟机的 VMX 文件,停用内存整理。
10 如果组合磁盘 I/O 比单个 HBA 容量更高,则使用多路径或多个链接。
11 对于 ESXi 主机,请创建预先分配的虚拟磁盘。当创建客户机操作系统的虚拟磁盘时,选择立即分配所有磁盘空间。重新分配额外的磁盘空间不会导致性能下降,并且磁盘出现碎片的可能性会减少。
12 使用最新的主机硬件。