MPIO 的吞吐量应该是多少?

Hen*_*Lee 12 sql-server

带有两个 1 Gbps NIC 的 Dell PowerEdge 2950 连接到交换机上的两个 1 Gbps 端口,然后连接到带有四个 1 Gbps NIC 的 NetApp,这些 1 Gbps NIC 作为一个虚拟接口出现。24 个驱动器、7200k SATA、NetApp RAID-DP。我已经使用 Microsoft iSCSI 启动器中的 MPIO 将每个主机 NIC 映射到 NetApp。使用 SQLIO 进行测试时,我的写入吞吐量在 200 MB 左右似乎合理,但我的读取接近 100 MB。

我的读取不应该像写入一样接近 200 MB 吗?这是配置问题还是我不​​明白的基本存储问题?

在此处输入图片说明

更新:这是随机工作负载的 IOPS。读取是有道理的,不过,我不确定写入的 20000 是什么。SAN 缓存为 3.2 GB。SQLIO 测试针对 25 GB 的文件。

在此处输入图片说明

Nat*_*lly 7

磁盘写入实际上是写入文件管理器上的内存 (NVRAM),稍后刷新到磁盘 - 在空闲文件管理器上,这些将非常快,并且 20,000 的 iops 非常可信(您会看到大多数 SSD 的速度相似) .

另一方面,读取需要来自磁盘,除非它们已经在文件管理器的读取缓存中(与写入不同,它位于易失性内存中)。

很难将存储供应商确定为旋转磁盘的 iops,但对于 7200RPM 驱动器,80-120 iops 是相当可信的。考虑到您可能已经因为 NetApp 的 RAID-DP 和/或备件丢失了几个磁盘,2,200 iops 接近于您对 22 个磁盘每个执行大约 100 iops 的预期。

这可能无法解释您的读取速度(当您执行顺序读取时,您的磁盘可能不会执行完整的 2200 iops),但它至少可以帮助解释您的写入性能。


Hen*_*Lee 5

对于后代,经过多次反复试验,我们找到了如何获得预期吞吐量的方法。

如上所述,NetApp 有一个由四个物理 NIC 支持的虚拟接口。主机有两个 NIC,我已经通过 MS iSCSI Initiator 配置了 MPIO,以便从每个 NIC 到一个虚拟接口都有一条路径。结果就是上面的吞吐量——写入在接近 200 MB 或两个 NIC 的速度下是有意义的,但读取是一个 NIC 的一半或速度。

经过仔细检查,我们的 SAN 人员注意到流量仅通过其中一个物理网卡进行读取。我不确定我们这边是否存在配置错误,但是我们尝试了两件事,并且都让我们获得了吞吐量。一种是将一个由四个 NIC 支持的虚拟接口更改为两个虚拟接口,每个接口由两个 NIC 支持。然后将一个主机网卡映射到一个虚拟接口。我们尝试的另一件事是在 SAN 端使用“别名”来呈现多个虚拟接口。(我不是 SAN 人,所以希望我说的是对的。)

我的看法是,我们只需要 SAN 提供多个接口,这样启动器就可以真正看到多条路径。这是我们现在的吞吐量:

在此处输入图片说明