对 RAID 0 性能的性能期望不合理吗?

对 RAID 0 性能的性能期望不合理吗?

这是我第一次组装一台带有硬件 RAID 卡的机器。我们买了一台戴尔T620带有H710P RAID controller (1GB NV Cache)、a160GB Solid State Drive (SATA Read Intensive MLC 3Gbps)和 two 3TB 7.2K RPM Near-Line SAS 6Gbps Hard Drives。固态硬盘几乎专用于操作系统,以使其保持“活跃”。

两个 SAS 驱动器由 RAID 0 配置。我们将此空间视为分析的临时空间,因此我们不必担心数据丢失。我们想要的是高性能 IO,因为我们要处理大量大文件。例如,我当前的项目是处理 800 个大小为 100-200GB 的文件。不幸的是,我必须将文件传输到计算机,分析它们,然后删除它们。令人惊讶的是(对我来说),我有 8 个作业同时运行(传输、分析、删除),每个作业的运行时间都在 20 多个小时(而单个作业大约需要 3 小时)。根据 top,我发现处理器正在等待 IO(等待 I/O 完成的时间徘徊在 20 左右)。

我知道这些硬盘的转速只有 7.2k RPM,但我认为它们的性能相当不错,因为戴尔列出的速度为 6Gbps。BeowulfNode42 提到这里有些驱动器甚至无法满足 3Gbps 链路的要求,但为了宣传而配备了 6Gbps 接口。但我认为戴尔不会在高端服务器上这样做。

我在谷歌上闲逛,看看我的期望是否不合理,但没有找到任何明确的答案。

问题:对于此设置的合理期望是什么?IO 显然是瓶颈。RAID 卡看起来很不错,我认为驱动器也很不错。

我运行了 hdparm 来查看结果。结果如下:

>sudo /usr/sbin/hdparm -Tt /dev/sdb

/dev/sdb:
 Timing cached reads:   19542 MB in  2.00 seconds = 9778.47 MB/sec
 Timing buffered disk reads: 1028 MB in  3.00 seconds = 342.11 MB/sec

缓存读取效果非常好,但我对缓冲读取的期望更高。我认为两个 6Gbps 驱动器的理论输出为 750MB/s,所以我预计会达到 600MB/s 左右。

感谢您的帮助。其他相关信息如下。如果我遗漏了任何内容,请告诉我。

OS: opensuse 13.1
RAM: 256GB (1866)
CPUs: Dual Intel Xeon E5-2650v2 2.6GHz, 20M Cache, 8.0GT/s QPI

答案1

6 Gbs 是 SAS 链路的速度,而不是单个磁盘的 IO 配置文件。

通常,SAS 背板的速度将被协商到最低公分母,因此您会发现仍然支持高速 SAS 链路的慢速磁盘,从而允许您在单个(外部)机箱或背板中混合磁盘,或者受益于分布在大量磁盘上的并行 IO。

类似 3 TB 7.2k 6 GB SAS 磁盘的 HP IO 配置文件为:

SAS Midline 驱动器适用于需要高容量的服务器和存储解决方案。这些驱动器具有价格适中的可靠性和性能,适合非关键任务、低工作负载应用程序,例如磁盘备份、归档和参考应用程序。

hdparm最多只能表明原始磁盘性能,但它可以完全绕过文件系统,也不会模拟更多随机 IO,据我所知。请查看有哪些好的免费开源硬盘基准测试工具?

答案2

hdparm -T 本质上将测试读取磁盘缓存(即 CPU 和内存)的性能。这将测试当文件缓存在内存中时您将获得的读取速度(请参阅 free 命令的缓存部分)。

近线 SAS 驱动器不是完整的 SAS 驱动器。它们具有与 SAS 驱动器相同的优势,因为它们使用 SAS 接口,但仍然是 7200rpm 机械驱动器。您给出的 hdparm -t 数字与 RAID0 中的两个驱动器相当。相比之下,3TB SATA 驱动器的速度通常约为 150MB/s。

为了获得更好的性能,您将考虑添加更多驱动器。以 Hadoop 为例,建议获得每 GB 的最佳价格并使用更多驱动器并向集群添加更多服务器。如果您需要超强的 HD 性能,那么更高容量的 SSD 可能更合适,尽管由于更频繁的读/写周期,大量使用可能会导致早期故障。

相关内容