将循环 IOPS 限制从默认值 1000 调整为 1
search cancel

将循环 IOPS 限制从默认值 1000 调整为 1

book

Article ID: 301451

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:

免责声明:本文为 Adjusting Round Robin IOPS limit from default 1000 to 1 (2069356) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。



使用 iSCSI/FC/FC/FCoE 存储的 ESXi 主机遇到延迟问题,而在 SAN 一端则无延迟迹象。


Environment

VMware vSphere ESXi 5.5
VMware vSphere ESXi 5.0
VMware vSphere ESXi 6.0
VMware ESXi 4.0.x Embedded
VMware vSphere ESXi 6.5
VMware ESXi 4.1.x Embedded
VMware ESXi 4.0.x Installable
VMware vSphere ESXi 5.1
VMware ESXi 4.1.x Installable

Resolution

ESXi 循环 PSP(路径选择插件)使用循环算法平衡所有活动存储路径中分布的负载。将选择并使用一个路径,直至传送了特定数量的数据。达到这一数量后,PSP 选择列表中的下一个路径。
触发路径更改的这一数量称为限制。
ESXi 循环 PSP 支持两种类型的限制:
  • IOPS 限制:循环 PSP 默认使用 IOPS 限制值 1000。在此默认情况下,发出 1000 个 I/O 操作后使用新路径。
  • 字节数限制:字节数限制可由 IOPS 限制替代。字节数限制允许在传送的字节数达到指定值后切换路径。
调整限制对性能有正面影响,其他存储供应商建议采用此方法将 IOPS 限制改为 1。
示例:
默认每秒 1000 次输入/输出操作 (IOPS) 在沿着每个路径方向发送 1000 个 I/O 后切换路径。如果负载的情况是,1000 IOPS 中的一部分即可使路径的带宽达到饱和,则即使存储阵列可以为请求提供服务,其余 I/O 也必须等待。IOPS 限制或字节数限制可以向下调整,以便在某个出现频率更高的传输率切换路径。调整功能允许在其他路径当前达到饱和时使用其他路径的带宽。
调整 IOPS 参数
要将 IOPS 参数从默认值 1000 调整为 1,请运行以下命令:

在 ESXi 5.x/6.x 中:

for i in `esxcfg-scsidevs -c |awk '{print $1}' | grep naa.xxxx`; do esxcli storage nmp psp roundrobin deviceconfig set --type=iops --iops=1 --device=$i; done

其中.xxxx 与您的 naa ID 的前几个字符匹配。
要验证是否应用了更改,请运行以下命令:

esxcli storage nmp device list

您会看到类似以下内容的输出:
Path Selection Policy: VMW_PSP_RR
Path Selection Policy Device Config: {policy=iops,iops=1,bytes=10485760,useANO=0;lastPathIndex=1: NumIOsPending=0,numBytesPending=0}
Path Selection Policy Device Custom Config:
Working Paths: vmhba33:C1:T4:L0, vmhba33:C0:T4:L0

在 ESXi 4.x 中:

for i in ` esxcfg-scsidevs -c |awk '{print $1}' |grep naa.xxxx ` ;do esxcli nmp roundrobin setconfig --device=$i --type=iops --iops=1; done

其中,.xxxx与您的 naa ID 的前几个字符匹配。

要验证是否应用了更改,请运行以下命令:

esxcli nmp device list

您会看到类似以下内容的输出:

Path Selection Policy: VMW_PSP_RR
Path Selection Policy Device Config: {policy=iops,iops=1,bytes=10485760,useANO=0;lastPathIndex=0: NumIOsPending=0,numBytesPending=0}
Working Paths: vmhba33:C0:T1:L0

注意:无需重新启动主机,更改即可生效。


Additional Information

当 ESXi 主机群集包含用于 Microsoft 故障切换群集的裸设备映射 (RDM) 时,SAN 端口拥堵明显。将循环限制值调整为 200 IOPS 可能会提供更佳的故障切换结果。
使用“循环路径选择策略”选项将 IOPS 从默认值更改为较低值是一项性能调校设置,有助于在存储阵列中的存储处理器和 HBA 路径之间实现负载平衡。当IOPS=1000时,会在沿着某个路径方向发送 1000 个 I/O 后转换到下一个路径。您可能会遇到以下情形:所有 LUN 均可以沿着相同路径方向发送 1000 个 I/O,同时在阵列中保留一个存储处理器来处理 I/O,且其他处理器处于闲置状态。通过在发送一个 I/O 后转换路径,您可以在路径之间得到更好的 I/O 平衡,并在存储处理器之间实现平衡。您甚至可以在路径之间实现 I/O 平衡。如果发生饱和,饱和持续时间会很短,以便提供存储处理器或更多的时间来处理 I/O。

您可以使用 PowerCLI 自动执行此操作,从而为每个具有循环多路径策略的 LUN 逐个群集地更改 IOPS 限制。有关详细信息,请参见附加的 2069356_PowerCLI_-_change_RR_IOPS_per_cluster.txt 文件。

注意:请咨询您的存储供应商,获取是否应在环境中更改此值的建议。
Adjusting Round Robin IOPS limit from default 1000 to 1

Attachments

2069356 PowerCLI_-_change_RR_IOPS_p0.txt get_app