MD3000i 读取性能较差(对于一个控制器,但对另一个控制器无影响)

MD3000i 读取性能较差(对于一个控制器,但对另一个控制器无影响)

我们有一个 MD3000i 阵列,由三台独立的服务器访问(所有刀片服务器都通过机箱网卡访问)。控制器 1(端口 0 和 1)链接到服务器 A。服务器 B 和 C(活动量都比服务器 A 少得多)链接到控制器 0(端口 0 和 1)。服务器 A 位于单独的 VLAN 上(通过刀片机箱背面的交换机连接到 MD3000i),服务器 B 和 C 位于自己的 VLAN 上(也通过刀片机箱背面的交换机连接到 MD3000i)。

我们遇到的问题是,服务器 A 的读取吞吐量明显优于 MD3000i。例如,查看通过该服务器运行的备份作业时,作业速率约为 3,000MB/分钟。但是,查看通过服务器 B 或 C 运行的备份作业时,作业速率低至 200MB/分钟。

如果我通过 MDSM 查看 iSCSI MAC 传输统计信息,则控制器之间的读数会有很大差异(除了总体音量之外):

Mac transmit statistics

MAC transmit legend

F = Frame Count
B = Byte Count
MF = Multicast Frame Count
BF = Broadcast Frame Count
PF = Pause Frame Count
CF = Control Frame Count
FDF = Frame Deferral Count
FED = Frame Excess Deferral Count
FLC = Frame Late Collisions Count
FA = Frame Abort Count
FSC = Frame Single Collision Count
FMC = Frame Multiple Collisions Count
FC = Frame Collision Count
FDR = Frame Dropped Count
JF = Jumbo Frame Count

iSCSI Host   | Port    | F            | B               | MF     | BF     | PF   | CF     | FDF  | FED  | FLC  | FA   | FSC  | FMC  | FC   | FDR  | JF

Controller 0 |  port 0 | 440573739    | 651904980400    | 0      | 0      | 0    | 0      | 0    | 0    | 0    | 0    | 0    | 0    | 0    | 0    | 0
Controller 0 |  port 1 | 440549412    | 651892177000    | 0      | 0      | 0    | 0      | 0    | 0    | 0    | 0    | 0    | 0    | 0    | 0    | 0
Controller 1 |  port 0 | 109676946034 | 148467634266838 | 0      | 0      | 512  | 131072 | 512  | 1024 | 1024 | 1024 | 512  | 1792 | 2304 | 2304 | 589824
Controller 1 |  port 1 | 402653242    | 111669157090    | 524288 | 524288 | 2304 | 720896 | 2304 | 3328 | 3840 | 4352 | 2048 | 3584 | 5632 | 2048 | 1114112

我怀疑服务器 B 和 C 使用的网卡不具备实现我们所需性能所需的功能(请注意,巨型帧数为 0——据我所知,当多台服务器访问单个 MD3000i 控制器时,建议使用巨型帧)。服务器 A 通过 Broadcom BCM57085 NetXtreme II 访问 MD3000i,而服务器 B 和 C 通过 Intel PRO/1000 MB 双端口访问 MD3000i。

到目前为止,我还没有一个可靠的方法来隔离控制器 0(服务器 B 和 C)上读取吞吐量缓慢的原因。

答案1

是的,缺少巨型帧很可能是问题所在。

对于 1500 字节 MTU 帧,iSCSI、校验和、TCP/IP、以太网帧等之间的开销可能约为 200-250 字节。这样,大约有 1250 字节可用于数据传输。另一方面,9000 MTU 巨型帧可以以相同的开销传输大约 7 倍的数据。

您可能还想看看这些卡是否具有 TCP 卸载引擎 (TOE),并确保已启用它们。这可能会对吞吐量产生相当大的影响,尤其是当 CPU 开始成为进程的瓶颈时。

相关内容