VMware vSphere 中的虚拟机性能分析。 第 3 部分:存储

VMware vSphere 中的虚拟机性能分析。 第 3 部分:存储

第 1 部分。关于 CPU
第 2 部分:关于内存

今天我们来分析vSphere中磁盘子系统的指标。 存储问题是虚拟机速度缓慢的最常见原因。 如果就 CPU 和 RAM 而言,故障排除仅限于虚拟机管理程序级别,那么如果磁盘出现问题,则可能需要处理数据网络和存储系统。

我将使用存储系统的块访问示例来讨论该主题,尽管对于文件访问,计数器大致相同。

有些理论

在谈论虚拟机磁盘子系统的性能时,人们通常会关注三个相互关联的参数:

  • 输入/输出操作数(每秒输入/输出操作数,IOPS);
  • 吞吐量;
  • 输入/输出操作的延迟(延迟)。

IOPS数 通常对于随机工作负载很重要:访问位于不同位置的磁盘块。 此类负载的示例可以是数据库、业务应用程序(ERP、CRM)等。

容量 对于顺序加载很重要:访问一个接一个的块。 例如,文件服务器(但不总是)和视频监控系统可以生成这样的负载。

吞吐量与 I/O 操作的数量相关,如下所示:

吞吐量 = IOPS * 块大小,其中块大小是块大小。

块大小是一个相当重要的特性。 现代版本的 ESXi 允许块大小最大为 32 KB。 如果块更大,则将其分成几个。 并非所有存储系统都可以有效地处理如此大的块,因此 ESXi 高级设置中有一个 DiskMaxIOSize 参数。 使用它,您可以减少虚拟机管理程序跳过的最大块大小(更多详细信息 这里)。 在更改此参数之前,我建议您咨询存储系统制造商或至少在实验室工作台上测试更改。 

大的块大小可能会对存储性能产生不利影响。 即使 IOPS 数量和吞吐量相对较小,大块大小也会导致高延迟。 因此,请注意该参数。

潜伏 – 最有趣的性能参数。 虚拟机的 I/O 延迟包括:

  • 虚拟机管理程序内部的延迟(KAVG,平均内核毫秒/读取);
  • 数据网络和存储系统提供的延迟(DAVG,Average Driver MilliSec/Command)。

来宾操作系统中可见的总延迟(GAVG、平均来宾毫秒/命令)是 KAVG 和 DAVG 的总和。

测量 GAVG 和 DAVG,并计算 KAVG:GAVG–DAVG。

VMware vSphere 中的虚拟机性能分析。 第 3 部分:存储

让我们仔细看看 KAVG。 在正常操作期间,KAVG 应趋于零或至少远小于 DAVG。 据我所知,KAVG 预期较高的唯一情况是 VM 磁盘上的 IOPS 限制。 在这种情况下,当您尝试超过限制时,KAVG 将会增加。

KAVG 最重要的组成部分是 QAVG - 虚拟机管理程序内的处理队列时间。 KAVG 的其余成分可以忽略不计。

磁盘适配器驱动程序中的队列和到卫星的队列具有固定大小。 对于高负载环境,增加此大小可能很有用。 这是 描述如何增加适配器驱动程序中的队列(同时到卫星的队列也会增加)。 当只有一个虚拟机与月球一起工作时,此设置有效,这种情况很少见。 如果月球上有多个VM,还必须增大该参数 Disk.SchedNumReqOutstanding (指示  这里)。 通过增加队列,可以分别减少 QAVG 和 KAVG。

但同样,首先阅读 HBA 供应商的文档并在实验室工作台上测试更改。

SIOC(存储 I/O 控制)机制的加入可能会影响到月球的队列大小。 它通过动态更改服务器上的 Moon 队列,提供集群中所有服务器对 Moon 的统一访问。 也就是说,如果其中一台主机正在运行需要不成比例的性能的虚拟机(嘈杂的邻居虚拟机),SIOC 会将该主机上的队列长度缩短到月球 (DQLEN)。 更多细节 这里.

我们已经整理好了 KAVG,现在介绍一下 DAVG。 这里一切都很简单:DAVG是外部环境(数据网络和存储系统)引入的延迟。 每个现代和不太现代的存储系统都有自己的性能计数器。 要使用 DAVG 分析问题,查看它们是有意义的。 如果 ESXi 和存储端一切正常,请检查数据网络。

为了避免性能问题,请为您的存储系统选择正确的路径选择策略 (PSP)。 几乎所有现代存储系统都支持 PSP 循环(带或不带 ALUA,非对称逻辑单元访问)。 此策略允许您使用存储系统的所有可用路径。 对于 ALUA,仅使用拥有月球的控制器的路径。 并非 ESXi 上的所有存储系统都有设置循环策略的默认规则。 如果您的存储系统没有规则,请使用存储系统制造商的插件,该插件会在集群中的所有主机上创建相应的规则,或者您自己创建规则。 细节 这里

此外,一些存储系统制造商建议将每个路径的 IOPS 数量从标准值 1000 更改为 1。在我们的实践中,这使得可以从存储系统中“榨取”更多性能,并显着减少故障转移所需的时间如果控制器出现故障或更新。 检查供应商的建议,如果没有禁忌症,请尝试更改此参数。 细节 这里.

基本虚拟机磁盘子系统性能计数器

vCenter 中的磁盘子系统性能计数器收集在数据存储、磁盘、虚拟磁盘部分中:

VMware vSphere 中的虚拟机性能分析。 第 3 部分:存储

在第 数据存储 VM 磁盘所在的 vSphere 磁盘存储(数据存储)有一些指标。 在这里您可以找到以下标准计数器:

  • IOPS(每秒平均读/写请求), 
  • 吞吐量(读/写速率), 
  • 延迟(读/写/最高延迟)。

原则上,一切都从柜台名称中一目了然。 让我再次提醒您注意,这里的统计信息不是针对特定 VM(或 VM 磁盘),而是针对整个数据存储的一般统计信息。 我认为,在 ESXTOP 中查看这些统计数据更方便,至少基于最小测量周期为 2 秒的事实。

在第 圆盘 VM 使用的块设备有一些指标。 有求和类型的 IOPS 计数器(测量期间输入/输出操作的数量)和几个与块访问相关的计数器(命令中止、总线复位)。 我认为在ESXTOP中查看这些信息也更加方便。

部分 虚拟磁盘 – 从查找 VM 磁盘子系统性能问题的角度来看最有用。 在这里您可以看到每个虚拟磁盘的性能。 正是需要此信息来了解特定虚拟机是否存在问题。 除了 I/O 操作数、读/写量和延迟的标准计数器之外,本节还包含显示块大小的有用计数器:读/写请求大小。

下图中是 VM 磁盘性能图表,您可以在其中看到 IOPS 数量、延迟和块大小。 

VMware vSphere 中的虚拟机性能分析。 第 3 部分:存储

如果启用了 SIOC,您还可以查看整个数据存储的性能指标。 以下是平均延迟和 IOPS 的基本信息。 默认情况下,只能实时查看此信息。

VMware vSphere 中的虚拟机性能分析。 第 3 部分:存储

ESXTOP

ESXTOP 有多个屏幕,提供有关整个主机磁盘子系统、各个虚拟机及其磁盘的信息。

让我们从虚拟机的信息开始。 使用“v”键调用“Disk VM”屏幕:

VMware vSphere 中的虚拟机性能分析。 第 3 部分:存储

NVDISK 是VM磁盘的数量。 要查看每个磁盘的信息,请按“e”并输入感兴趣的 VM 的 GID。

该屏幕上其余参数的含义从其名称中可以清楚地看出。

故障排除时另一个有用的屏幕是磁盘适配器。 通过“d”键调用(下图中选择字段A、B、C、D、E、G):

VMware vSphere 中的虚拟机性能分析。 第 3 部分:存储

NPTH – 从该适配器可见的通往卫星的路径数量。 要获取适配器上每个路径的信息,请按“e”并输入适配器的名称:

VMware vSphere 中的虚拟机性能分析。 第 3 部分:存储

阿克伦 – 适配器上的最大队列大小。

此屏幕上还有我上面提到的延迟计数器: KAVG/cmd、GAVG/cmd、DAVG/cmd、QAVG/cmd.

按“u”键即可调出磁盘设备屏幕,该屏幕提供有关各个块设备 - 卫星的信息(下图中选择了字段 A、B、F、G、I)。 在这里您可以看到卫星队列的状态。

VMware vSphere 中的虚拟机性能分析。 第 3 部分:存储

德克兰 – 块设备的队列大小。
ACTV – ESXi 内核中的 I/O 命令数。
奎德 – 队列中 I/O 命令的数量。
%美元 – ACTV / DQLEN × 100%。
加载 – (ACTV + QUED) / DQLEN。

如果 %USD 较高,您应该考虑增加队列。 队列中的命令越多,QAVG 越高,相应的 KAVG 也越高。

您还可以在磁盘设备屏幕上查看存储系统上是否正在运行 VAAI(用于阵列集成的 vStorage API)。 为此,请选择字段 A 和 O。

VAAI机制允许您将部分工作从Hypervisor直接转移到存储系统,例如归零、复制块或阻塞。

VMware vSphere 中的虚拟机性能分析。 第 3 部分:存储

如上图所示,VAAI 在此存储系统上工作:积极使用零和 ATS 原语。

有关优化 ESXi 上磁盘子系统工作的提示

  • 注意块大小。
  • 设置 HBA 上的最佳队列大小。
  • 不要忘记在数据存储上启用 SIOC。
  • 根据存储系统制造商的建议选择 PSP。
  • 确保 VAAI 正在运行。

有关该主题的有用文章:http://www.yellow-bricks.com/2011/06/23/disk-schednumreqoutstanding-the-story/
http://www.yellow-bricks.com/2009/09/29/whats-that-alua-exactly/
http://www.yellow-bricks.com/2019/03/05/dqlen-changes-what-is-going-on/
https://www.codyhosterman.com/2017/02/understanding-vmware-esxi-queuing-and-the-flasharray/
https://www.codyhosterman.com/2018/03/what-is-the-latency-stat-qavg/
https://kb.vmware.com/s/article/1267
https://kb.vmware.com/s/article/1268
https://kb.vmware.com/s/article/1027901
https://kb.vmware.com/s/article/2069356
https://kb.vmware.com/s/article/2053628
https://kb.vmware.com/s/article/1003469
https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/performance/vsphere-esxi-vcenter-server-67-performance-best-practices.pdf

来源: habr.com

添加评论