Sti*_*lez 2 bandwidth zfs sas pci-express bandwidth-measuring
注意:这个问题是真实世界的,但要对其进行分析,请注意我是从设备和总线功能的“理论”起点开始的,我承认这通常根本不能代表正在使用的带宽利用率。
我有一组 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/秒:HDD I/ 的 64% 的损失能力。
另一方面,文件服务器主要由 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 的标准之前评估是否存在真正的问题。
啊,你有没有打扰过理论数字?你说的太好了...
18 x SAS3 峰值最大值:(1.2 x 18) = 21.6 GB/秒
是的。现在给我看一个硬盘(你说的是 HDD),它可以提供足够的数据来实际饱和它的 SAS3 链接。提示:缓存不是光盘。
当您查看硬盘可以处理的实际数据数量时,您的论证就崩溃了。
因此,一个 SAS 10K HDD 具有 ?140 IOPS。对于 8KB 块,吞吐量仅为 8 * 140 = 1120 KB/s。
转动那个 x18,你最终会得到惊人的 20160kb/秒。四舍五入 20MB。那是您带宽的 0.1%。
SAS 足以处理数百张光盘是有原因的。
现在,当您将 SSD 添加到组合中时,这确实会改变,是的,那么您很可能会淘汰 SAS。带一个 SSD。这就是 U.2 外形尺寸实际上使用每个 SSD 的 PCIe 通道的原因,并且有些情况下可以处理其中的 24 个通道。
但是,只要您不谈论 SSD,您基本上就忽略了一个事实,即协议层(标准化)的吞吐量绝对无关紧要,因为您的终端设备甚至无法接近开始饱和。
由于您的带宽限制,您没有节流效果 - 您有一个节流效果是因为您基本上有一条高速公路可以容纳一些孤独的卡车。
归档时间: |
|
查看次数: |
444 次 |
最近记录: |