raid6的性能非常低

我注意到写入raid-6的速度非常低,但是当我用hdparm进行testing时,速度是合理的:

dd if=/dev/zero of=/store/01/test.tmp bs=1M count=10000 

给出:50Mb / s甚至更less。

hdparm给出:hdparm –direct -t / dev / vg_store_01 / logical_vg_store_01提供450MB / s

为什么文件写入低于hdparmtesting? 是否应该调整一些内核限制?

我有一个Areca 1680适配器与16x1Tb SAS磁盘,科学的Linux 6.0

编辑

我的错。 对不起,所有单位都是MB / s

更多关于硬件:

两个quadcore机器中的2个areca控制器。 16Gb内存
sas背板和areca的固件是最近的一个。
磁盘是希捷7.200转16x1Tb x2 RAID盒。 每8个磁盘raid6,所以总共4卷,IBA = 64。

两卷分条纹lvm和格式化的ext4

条纹大小是128

当我格式化卷我可以看到iotop它写入400mb /秒

iostat还显示,两个lvm成员驱动器正在写450MB / s

最终以1600GB / s写入

其中一个突袭是由于磁盘损坏而导致性能下降。 奇怪的是,在jbod模式下,hdparm和其他硬盘一样可以达到100MB / s。 沉重的IO后,它报告在日志文件写入错误(不是有10个)。 袭击仍然没有失败或有辱人格。

那么更换后,我的configuration如下:

  • 2xARC1680控制器
  • 带有16x1Tb SAS磁盘的RAID0条带128 lba64
  • 带有16x1Tb SAS磁盘的RAID0条带128 lba64

卷组大小为128K的卷组

格式化为XFS

直接

hdparm –direct -t / dev / vg_store01 / vg_logical_store01

/ dev / vg_store01 / vg_logical_store01:计时O_DIRECT磁盘读取:3.00秒内为4910 MB = 1636.13 MB /秒

没有直接的

hdparm -t / dev / vg_store01 / vg_logical_store01

/ dev / vg_store01 / vg_logical_store01:定时缓冲磁盘读取:在3.00秒中1648 MB = 548.94 MB /秒

** ddtesting直接**

dd if = / dev / zero = / store / 01 / test.tmp bs = 1M count = 10000 oflag =直接10000 + 0logging10000 + 0logging出10485760000字节(10 GB)复制8.87402 s 1.2 GB /小号

**无直接**

dd if = / dev / zero = / store / 01 / test.tmp bs = 1M count = 10000 10000 + 0logging10000 + 0logging10485760000字节(10 GB)复制,19.1996 s, 546 MB / s

检查你的FS是否与RAID尺寸一致。 我在RAID-6arrays上获得了320MB / s的速度,在XFS上配备了8个2TB SATA驱动器,我认为它受到3Gb / s SAS通道评估者和RAID-6性能的限制。 你可以从这个线程得到一些alignment的想法。

不幸的是,你正在比较苹果和橘子。

450Mb / s = 56MB / s,与您在现实生活中所看到的大致相当。 他们都给你相同的阅读(但一位是位,一位是字节)。 你需要用450除以8得到相同的措施。

(在你的问题中,你有另一种方式的大写,现在我只能希望/假设这是一个错字错误,因为如果你扭转大写,你会得到一个几乎完美的匹配)

检查是否可以在RAID控制器上启用写入caching

如果您的控制器上装有电池,则最好,否则在电源故障期间可能会丢失数据

hdparmtesting不是基本上执行缓冲读取testing吗? 您无法将缓冲读取速度与实际写入速度进行比较,并预期它们在RAID6设备上相等。

虽然我期望在具有高质量驱动器(1TB SAS或1TB SATA?)的RAID6上以50MB /秒的速度写入更好的性能,但是我不会期望450MB /秒的写入速度。

但是当我用hdparm进行testing时,速度是合理的

hdparm不会testing写入性能,它是“只读”的。 此外,它testing实际上阻止 I / O读取性能,但是您调用dd的方式使得它同时testing写入文件系统性能 (并且RAID-5,6写入明显慢于devise读取)。 如果你的FS是EXT3,例如,你可以很容易地得到不良的performance,没有正确格式化( 考虑你的RAID的完整的条带大小参数)。

此外,还有相当多的人倾向于使用较小的条带大小,从而导致磁盘I / O不理想。 创build此RAID时,您的条带大小select是什么?

另一个问题是,如何在不同的bs参数下, dd的数字有所不同? 你有没有尝试使用全条纹写入大小?