当进行一些性能testing,写入由mdadm驱动的基于SSD的3路RAID 1镜像时,似乎我们遭受的写入惩罚比在单个驱动器上进行相同的testing要慢大约2.2倍。 我们在这个testing中正在阅读和写入相同的底层物理驱动器,因为它模拟了我们感兴趣的真实世界testing案例。
由于SATA III速度限制或其他原因,这是否会减速? 我很惊讶RAID 1会有写入惩罚,因为我认为它可以写入所有三个驱动器同时写入其中一个相同的速度。
All three drives present: dd if=/dev/md3 of=test.file bs=1048576 count=37193 ...207.748 s, 188 MB/s Just two drives present (ie normal two-drive RAID 1) dd if=/dev/zero of=test.file bs=1048576 count=37193 ...119.016 s, 328 MB/s Just one drive present (no redundancy) dd if=/dev/zero of=test.file bs=1048576 count=37193 ...93.794 s, 416 MB/s
看起来,所有三个SSD都在同一个控制器上,并且达到了最大的SATA III速度等级:
第三代SATA接口以6.0 Gbit / s的本地传输速率运行; 考虑到8b / 10b编码,最大未编码传输速率是4.8 Gbit / s(600 MB / s)。 ( 来源 )
您同时写入所有三个驱动器的testing,所以188MB / s实际上是564MB /秒,只是短于最大速度。
如果您可以将一个或多个SSD移动到单独的控制器,则可能会有所帮助。
基于PCIe闪存的存储在越来越多的高端系统中出现的原因之一就是这个限制。