Linux RAID-0性能不能超过1 GB / s


8

我无法从设置中获得最大吞吐量。硬件如下:

  • 双四核AMD Opteron(tm)处理器2376
  • 16 GB DDR2 ECC RAM
  • 双Adaptec 52245 RAID控制器
  • 48个1 TB SATA驱动器设置为2个RAID-6阵列(256KB条带)+备用磁盘。

软件:

  • 普通香草2.6.32.25内核,针对AMD-64编译,针对NUMA优化;Debian Lenny用户群。
  • 基准测试运行:disktest,bonnie ++,dd等。所有结果均相同。这里没有差异。
  • io调度程序:没有。是的,这里没有技巧。

到目前为止,我基本上一直认为,对多个物理设备进行条带化(RAID 0)可以大致线性地提高性能。但是这里不是这种情况:

  • 每个RAID阵列可实现约780 MB / s的持续写入和1 GB / s的持续读取。
  • 同时使用两个不同的过程同时写入两个RAID阵列的速度为750 + 750 MB / s,从两者读取的速度均为1 +1 GB / s。
  • 但是,当我使用mdadm或lvm将两个阵列条带化时,写入速度约为850 MB / s,读取速度约为1.4 GB / s。至少比预期少30%!
  • 对条带化数组运行两个并行的写入器或读取器进程并不能提高数字,实际上,这会进一步降低性能。

那么这里发生了什么?基本上,我排除了总线或内存争用,因为当我同时在两个驱动器上运行dd时,聚合写入速度实际上达到1.5 GB / s,读取速度超过2 GB / s。

因此,它不是PCIe总线。我想这不是RAM。它不是文件系统,因为我得到的原始设备或使用XFS基准测试的数字完全相同。使用LVM条带化和md条带化也可以获得完全相同的性能。

怎么了?是什么导致流程无法达到最大吞吐量?Linux剥离是否有缺陷?我还能进行其他哪些测试?


我不明白为什么要在这里使用RAID 6 + 0,为什么只使用常规RAID 1 + 0会为什么呢?
斩波器

那不会解决问题。条带化RAID-10阵列时,md / lvm具有相同的行为。我要照顾的是普遍缺乏性能,而不是特定的设置。这是测试系统,而不是生产机器。
wazoox 2010年

5
您的突袭0条纹与突袭6条纹对齐吗?通常,分层RAID是一个非常不稳定的区域,不能一概而论地假定给定RAID就像是相同速度的单个硬盘一样。
JamesRyan 2010年

1
您是否尝试过将Adaptec卡配置为JBOD并仅在软件(md)中执行RAID-10?如果控制器的RAID功能由驱动程序部分处理,也就不会令我感到惊讶,一旦插入两个不同的RAID,就无法获得任何性能优势。另一方面,md将尝试根据理论时间来优化对每个驱动器的独立访问(当然,如果没有其他瓶颈)
Javier 2010年

1
这听起来并不容易调查。乍一看,我希望striping程序无法通过多线程算法执行。由于您正在使用中的软RAID mdadm,因此建议您查看源。
e2-e4 2010年

Answers:



2

据我所知,那是一张x8 PICe Gen 1卡-假设零开销,它可以支持的绝对最大数据速率为2GBytes / sec。Adaptec本身仅声称这些卡最多可以维持1.2GB /秒的速度,而您已经超过了。

配备行业领先的双核芯片上RAID(RoC),x8 PCI Express连接和512MB DDR缓存,它们每秒可提供超过250,000 IO和1.2GB / s的IO。

我的猜测是,由于您可以通过两个RAID 0集独立地承担额外的负载,从而大大超出其要求的性能,因此负载之小,仅此而已,条带化增加了RAID CPU或RAM子系统上的压力。控制器,以GB /秒的速度加载。


1
我不太明白...用OP的话来说,在我看来,他有2个RAID控制器,每个控制器处理一个RAID6阵列。然后,他将RAID 0设置为软件中的两个RAID 6阵列。使用Linux内置的内核RAID。在这种情况下,每个控制器仅应处理一半的负载,因此每个控制器只需要执行780MB / s的写入和1GB / s的读取。控制器已经证明可以做到这一点(在添加软件RAID之前)。因此,PCI-Express总线/ RAID控制器本身不应该成为限制因素吗?
Jesper M,2010年

公平点-错过了双控制器注释(以及强调该注释的lvm \ md部分)。那时,他关于不受总线\ IO限制的观点得到了充分证明。
赫尔维克2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.