注意:这个问题是真实的,但要分析它,请注意我已经从设备和总线能力的“理论”起点开始,我承认这通常根本不能代表使用中的带宽利用率。
我有一个 18 x SAS3 混合 8TB 和 10TB 企业驱动器阵列,在 ZFS (FreeBSD) 下配置为 6 组 3 路镜像。目前,它们都挂在单个 24 端口 HBA (9305-24i) 上。
很难知道有多少驱动器在高峰期一起工作,但假设它们都用于读取,我得到以下计算最坏的情况(可能不现实?):
SAS3 单工带宽:(12 gbits/sec) x (8/10 encoding) = 1.2 GB/sec 原始数据最大值
=> 18 x SAS3 峰值最大值:(1.2 x 18) = 21.6 GB/sec
但 PCI-E 3.0 x 8 单工带宽:7.9 GB/秒
因此,乍一看,似乎阵列可能会因需求而受到严重限制,因为链路将阵列 IO 从 21.6 GB/秒降至 7.9 GB/秒:损失了 64% 的 HDD I/ O能力。
另一方面,文件服务器主要由 2 个最终用户使用:文件服务器本身需要以最高速度读取和写入作为其文件处理的一部分,以及通过 10 GbE 链接的任何其他设备,因此即使使用 2 个链路聚合,也不能消耗超过 2 GB/秒的单工。因此,无论如何,它可能无法使用超过 PCI-E 链接速度的一小部分。
(即使我通过 SSH 对服务器本身进行一些文件管理,2 GB/秒仍然是相当不错的速度,我可能不会抱怨。)
此外,无论 SAS 3 理论上可以提供什么,12 gbit = 1.2 GB/秒,即使从其内部缓存中读取最大,企业 HDD 似乎也不太可能利用 SAS 带宽。SSD 是的,但是 HDD 呢?不太可能?数据表中的最大读取速度通常为 200 - 300 GB/秒左右。
因此,我的问题是,鉴于 HBA 可以在 PCI-E 上提供高达近 8 GB/秒的带宽,而最终用户最多可以消耗 2 GB/秒,实际上是否会产生节流效应?
换句话说,考虑到最终用户有 2 GB/秒的聚合连接,理论上磁盘阵列在 PCIE 插槽处从 22 GB/秒限制到 8 GB/秒是否重要?还是 PCI-E 插槽限制仍然是一个问题,因为本地系统有时需要比终端设备带宽建议的更快的 I/O?
如果有限制,我可以将磁盘拆分为 2 个 HBA,但我想知道如何评估是否存在真正的问题,然后再牺牲第二个 PCIE 插槽来提高原始磁盘 IO 的标准。