VMware vSphere中的VM性能分析。 第3部分:存储



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

今天,我们将分析vSphere中的磁盘子系统指标。 存储问题是虚拟机运行缓慢的最常见原因。 如果在使用CPU和RAM的情况下,故障排除在虚拟机监控程序级别结束,则在磁盘出现问题时,您可能必须处理数据网络和存储系统。

我将以块访问存储为例分析该主题,尽管对于文件访问,计数器大致相同。

一点理论


在谈论虚拟机磁盘子系统的性能时,通常要注意三个相关参数:

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

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

吞吐量对于顺序加载重要:访问一个接一个的块。 例如,文件服务器(但并非总是如此)和视频监视系统会产生这样的负载。

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

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

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

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

延迟是最有趣的性能参数。 虚拟机的I / O操作延迟是以下各项的总和:

  • 系统管理程序内的延迟(KAVG,平均内核MilliSec /读取);
  • 数据网络和存储(DAVG,平均驱动程序MilliSec / Command)给出的延迟。

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

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


来源

让我们来谈谈KAVG 。 在正常操作中,KAVG应该趋于零,或者至少比DAVG小得多。 我知道何时KAVG会很高的唯一情况是VM磁盘上的IOPS限制。 在这种情况下,当尝试超过限制时,KAVG将增加。

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

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

但是,再次,首先请阅读HBA供应商提供的文档,并在实验室进行测试。

包含SIOC(存储I / O控制)机制可能会影响到达月球的队列的大小。 通过动态更改服务器上到月球的队列,它可以从群集中的所有服务器统一访问月球。 也就是说,如果VM在要求性能不成比例的主机(嘈杂的邻居VM)上运行,则SIOC会减少该主机上到达月球的队列的长度(DQLEN)。 更多细节在这里

KAVG进行了整理,现在对DAVG有所了解。 一切都很简单:DAVG是外部环境(数据网络和存储)引入的延迟。 任何不那么现代的存储系统都有其自己的性能计数器。 要分析DAVG的问题,请仔细研究它们。 如果在ESXi和存储方面一切正常,请检查数据网络。

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

另外,一些存储供应商建议将每条路径的IOPS数量从标准值1000更改为1。在我们的实践中,这使我们可以“压缩”存储的更多性能,并在控制器发生故障或更新时大大减少了故障转移所需的时间。 检查供应商的建议,如果没有禁忌症,请尝试更改此参数。 详细信息在这里

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


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



数据存储”部分包含VM磁盘所在的vSphere磁盘存储(数据存储)的指标。 在这里,您可以找到以下标准计数器:

  • IOPS(每秒平均读取/写入请求),
  • 带宽(读/写速率),
  • 延迟(读/写/最高延迟)。

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

磁盘”部分包含VM使用的块设备的指标。 有总和类型的IOPS计数器(每个测量周期的I / O操作数)和与块访问有关的几个计数器(命令中止,总线复位)。 我认为,此信息也更方便在ESXTOP中观看。

在对VM磁盘子系统性能问题进行故障排除方面,“ 虚拟磁盘”部分最有用。 在这里,您可以看到每个虚拟磁盘的性能。 需要此信息以了解特定虚拟机是否有问题。 除了用于输入/输出操作,读取/写入量和延迟的标准计数器之外,本节还包含一些有用的计数器,它们显示块大小:读/写请求大小。

在下图中,显示了VM磁盘的性能图,您可以在其中查看IOPS数量,延迟和块大小。



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



ESXTOP


ESXTOP具有多个屏幕,这些屏幕显示有关整个主机磁盘子系统,各个虚拟机及其磁盘的信息。

让我们从有关虚拟机的信息开始。 通过“ v”键调出“磁盘VM”屏幕:



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

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

疑难解答的另一个有用屏幕是磁盘适配器。 通过“ d”键调用它(在下图中,选择了字段A,B,C,D,E,G):



NPTH是此适配器可见的月球路径数。 要获取有关适配器上每个路径的信息,请按“ e”并输入适配器的名称:



AQLEN-适配器上的最大队列大小。

在此屏幕上还显示了延迟计数器,我在上面谈到过: KAVG / cmd,GAVG / cmd,DAVG / cmd,QAVG / cmd

磁盘设备屏幕(用“ u”键调用)显示有关单个块设备的信息-卫星(在下图中,选择了A,B,F,G,I字段)。 在这里,您可以看到进入月球的队列的状态。



DQLEN-块设备的队列大小。
ACTV是ESXi核心中I / O命令的数量。
QUED-队列中I / O命令的数量。
美元 -ACTV / DQLEN×100%。
负载 -(ACTV + QUED)/ DQLEN。

如果%USD高,则应考虑扩大阵容。 队列中的团队越多,QAVG以及相应的KAVG越高。

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

VAAI机制允许您将部分工作从虚拟机管理程序直接转移到存储系统,例如,调零,复制块或块。



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

ESXi磁盘优化技巧


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

Source: https://habr.com/ru/post/zh-CN461127/


All Articles