我在一台戴尔服务器上运行 CentOS 7(XFS 文件系统),该服务器配有 PERC H700 RAID 控制器。这台服务器内有 6 个三星 850 Evo 250GB SSD(是的,它们是消费级硬盘,但这是一台家用服务器。无论如何,我进行了 DD 测试,速度约为 550MB/s,这相当于单个 SSD 的写入速度,但这些硬盘处于 RAID 10 中……人们会期望更快。
写入测试的输出:
[root@localhost] sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 1.95942 s, 548 MB/s
读取测试的输出:
[root@localhost]# dd if=tempfile of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 0.171463 s, 6.3 GB/s
有人能解释一下这种情况吗?这是否是可接受的写入速度?我很困惑,不知道该怎么办。非常感谢您的帮助 :)
答案1
我可以关闭此重复内容因为有很多因素会影响Linux中的存储性能。
我认为人们在尝试对 SSD 性能进行基准测试时的想法是错误的。您应该使用 SSD 来获得更好的随机 I/O 性能。您正在测试大块顺序性能,这不符合任何类型的用例,除了复制大文件。
- 吞吐量:阵列的最大带宽(可能是连续的)。
- 每秒输入/输出次数:阵列每秒可执行多少次 I/O 操作。
- 潜伏:存储子系统能够多快满足您的 I/O 请求。
在大多数情况下,最后两个因素才是最重要的。此外,由于您使用的是 RAID 控制器,因此缓存元素也发挥了作用。此外,XFS 和 Linux 缓存 I/O,因此您需要知道您正在测试什么。
我建议使用专门构建的工具,例如fio
,iozone
甚至bonnie++
运行一组适当的基准测试。
答案2
RAID 1 的写入速度是普通磁盘的 1/2,而 Raid 0 的写入速度是普通磁盘的 2 倍。
(1/2)* 2 = 1
如果您在 Raid 10 中有 4 个磁盘,您将获得 1 倍的写入速度和 4 倍的读取速度。这些是一般数字,而不是技术数字,因为随机/顺序和其他因素都会发挥作用(尽管 SSD 的影响不大)。