使用磁盘图表监控平均磁盘负载并确定磁盘使用情况趋势。例如,您可能注意到频繁读写硬盘的应用程序的性能降低。如果在磁盘读写请求次数记录中看见高峰,请检查当时是否有任何此类应用程序正在运行。
问题
- 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 主机,创建预先分配的虚拟磁盘。当创建客户机操作系统的虚拟磁盘时,选择立即分配所有磁盘空间。重新分配额外的磁盘空间不会导致性能下降,并且磁盘出现碎片的可能性会减少。
- 使用最新的 Hypervisor 软件。