iSCSI 性能分析和调优

对于在连接到系统时以及在连接到网络交换机时出现的因特网小型计算机系统接口 (iSCSI) 主机性能问题,此过程提供了解决方案。

关于此任务

可能影响 iSCSI 性能的一些属性和主机参数:
  • 传输控制协议 (TCP) 延迟 ACK
  • 以太网巨型帧
  • 网络瓶颈或超额预订
  • iSCSI 会话登录均衡
  • 网络上 iSCSI 的优先级流量控制 (PFC) 设置和带宽分配
  • 如果 iSCSI/iSER映射到包含在 100g上配置的IP地址的端口集,则 iSCSI 带宽性能将降低。
  • 缺省情况下, iSCSI 主机到 100g 以太网端口的映射当前受限制。 您可以使用 chhost-force 标志来覆盖限制。

程序

  1. 禁用 TCP 延迟应答功能。
    要禁用此功能,请参阅 OS/平台文档。

    该问题的主要特征是:读性能明显低于写性能。 传输控制协议 (TCP) 延迟应答是为提高网络性能而实施 TCP 时所使用的一种方法。 但是,在此场景中,未完成 I/O 的数量为 1,此方法会明显降低 I/O 性能。

    实际上,可以将多个 ACK 响应组合到单个响应中,以降低协议开销。 如 RFC 1122 中所述,主机可以延迟发送 ACK 响应最多 500 毫秒。此外,对于完整大小的传入段流,必须为每个第二段发送 ACK 响应。

  2. 为 iSCSI 启用巨型帧。

    巨型帧是指大小超过 1500 字节的以太网帧。 最大传输单元 (MTU) 参数用于度量巨型帧的大小。

    系统支持 9000 字节的 MTU。 请参阅 chportethernet 命令以启用巨型帧。 当链路翻转并且通过该端口执行的 I/O 操作暂停时,该命令将中断。

    网络必须完全支持巨型帧才有效。 通过发送 ping 包(将在不分段的情况下进行传送)来验证网络是否支持巨型帧。 例如:
    • Windows:
      ping -t <iscsi target ip> -S <iscsi initiator ip> -f -l <new mtu size - packet overhead (usually 36, might differ)>
      以下命令是用于检查 Windows 7 系统上是否正确设置了 9000 字节 MTU 的命令示例:
      ping -t -S 192.168.1.117 192.168.1.217 -f -l 8964
      以下输出是成功回复的示例:
      192.168.1.217: bytes=8964 time=1ms TTL=52
    • Linux®:
      ping -l <source iscsi initatior ip> -s <new mtu size> -M do <iscsi target ip> 
    • ESXi:
      ping <iscsi target ip> -I <source iscsi initiator ip> -s <new mtu size - 28> -d
  3. 验证交换机的端口统计信息(连接了启动器/目标端口),以确保较低的丢包率。

    查看网络体系结构以避免发生任何瓶颈和超额预订。 需要均衡网络以避免出现丢包情况;丢包会明显降低存储性能。 必须联网才能纠正此类问题。

  4. 优化并利用所有 iSCSI 端口。
    要优化系统资源利用率,必须使用所有 iSCSI 端口。
    • 将每个端口分配给一个 CPU,并且通过均衡登录,可以最大化 CPU 利用率并实现更佳性能。 理想情况下,配置与系统节点上 iSCSI 端口数量相等的子网。 使用不同子网上的 IP 配置节点的各个端口,并对其他节点执行同样的操作。 以下示例显示了理想配置:

      Node 1
      Port 1: 192.168.1.11
      Port 2: 192.168.2.21
      Port 3: 192.168.3.31

      Node 2:
      Port 1: 192.168.1.12
      Port 2: 192.168.2.22
      Port 3: 192.168.3.33
    • 请避免以下情况:有 50 台主机登录到端口 1,而只有 5 台主机登录到端口 2。
    • 使用适用的子网划分功能在会话数与冗余性之间取得平衡。
  5. 确保在网络上为 iSCSI 分配合适的带宽。

    可以在各种类型的流量之间划分带宽。 分配合适的带宽以获得良好性能,这一点很重要。 要为 iSCSI 流量分配带宽,必须先为 iSCSI 启用优先级流量控制。