我无法从设置中获得最大吞吐量。硬件如下:
- 双四核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年
您的突袭0条纹与突袭6条纹对齐吗?通常,分层RAID是一个非常不稳定的区域,不能一概而论地假定给定RAID就像是相同速度的单个硬盘一样。
—
JamesRyan 2010年
您是否尝试过将Adaptec卡配置为JBOD并仅在软件(md)中执行RAID-10?如果控制器的RAID功能由驱动程序部分处理,也就不会令我感到惊讶,一旦插入两个不同的RAID,就无法获得任何性能优势。另一方面,md将尝试根据理论时间来优化对每个驱动器的独立访问(当然,如果没有其他瓶颈)
—
Javier 2010年
这听起来并不容易调查。乍一看,我希望
—
e2-e4 2010年
striping
程序无法通过多线程算法执行。由于您正在使用中的软RAID mdadm
,因此建议您查看源。