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

问题

  • kernelLatency 数据计数器的值大于 4ms。
  • deviceLatency 数据计数器的值大于 15ms 表示存储阵列可能存在问题。
  • queueLatency 数据计数器测得的值高于零。
  • 延迟峰值。
  • 读/写请求异常增加。

原因

  • 主机上的虚拟机正在尝试将大于配置支持的吞吐量发送到存储系统。
  • 存储阵列可能会出现内部问题。
  • 负载过高,且阵列无法足够快速地处理数据。

解决方案

  • 主机上的虚拟机正在尝试将大于配置支持的吞吐量发送到存储系统。检查 CPU 使用情况,并增加队列深度。
  • 将活动 VMDK 移动到具有更多心轴的卷,或将磁盘添加到 LUN。
  • 增加虚拟机内存。这样做应当允许更多的操作系统缓存,以便可减少 I/O 活动。注意:可能还需要增加主机内存。增加内存可能会减少存储数据的需要,因为某些工作负载可以利用系统内存来缓存数据,从而避免访问磁盘。
  • 通过在客户机操作系统中检查交换统计信息,验证虚拟机是否有足够的内存。增加客户机内存,但注意不要导致主机内存交换过多。安装 VMware Tools,以便内存可以膨胀。
  • 在所有客户机上整理文件系统碎片。
  • 如果适用于您的环境,请对 VMDK 和 VMEM 文件禁用防病毒按需扫描。
  • 使用供应商的阵列工具确定阵列性能统计信息。当过多的服务器同时访问阵列上的常见元素时,磁盘可能无法正常工作。考虑阵列侧的改进以增加吞吐量。
  • 使用 Storage vMotion 将 I/O 密集型虚拟机分发给多个主机。
  • 在所有可用物理资源上平衡磁盘负载。在由不同适配器访问的 LUN 上分散使用率高的存储。为每个适配器使用单独队列可改进磁盘效率。
  • 配置 HBA 和 RAID 控制器以达到最佳状态。验证 RAID 控制器上的队列深度和缓存设置是否足够。如果不足够,则通过调整 Disk.SchedNumReqOutstanding参数,为虚拟机增加待处理磁盘请求数。
  • 对于资源密集型虚拟机,将虚拟机的物理磁盘驱动器与具有系统页面文件的驱动器分离。这在密集使用期间可减轻磁盘心轴冲突。
  • 在具有相当大 RAM 的系统上,通过将行 MemTrimRate=0添加到虚拟机的 VMX 文件,禁用内存整理。
  • 如果组合磁盘 I/O 比单个 HBA 容量更高,则使用多路径或多个链接。
  • 对于 ESXi 主机,创建预先分配的虚拟磁盘。当创建客户机操作系统的虚拟磁盘时,选择立即分配所有磁盘空间。重新分配额外的磁盘空间不会导致性能下降,并且磁盘出现碎片的可能性会减少。
  • 使用最新的管理程序软件。