这是我第一次用硬件RAID卡构build一台机器。 我们购买了带有H710P RAID controller (1GB NV Cache) , 160GB Solid State Drive (SATA Read Intensive MLC 3Gbps)和两个3TB 7.2K RPM Near-Line SAS 6Gbps Hard Drives的戴尔T620 。 固态驱动器是非常致力于操作系统,以保持“跳转”。
两个SAS驱动器由RAID 0configuration。我们将这个空间视为分析划痕,所以我们不关心数据丢失。 我们需要的是高性能的IO,因为我们处理大量的大文件。 例如,我目前的项目是使用800-200个文件,大小为100-200GB。 不幸的是,我不得不将这些文件传输到计算机,分析它们,并删除它们。 令我惊讶的是,我有8个工作同时进行(转移,分析,删除),每项工作的运行时间超过20小时(而单个工作的工作时间约为3小时)。 我发现处理器在IO上等待(等待I / O完成的时间徘徊在20左右)。
我意识到这些只有7.2k RPM的驱动器,但我认为他们是相当有能力,因为戴尔列出他们在6Gbps。 BeowulfNode42在这里提到,一些驱动器获得广告的6Gbps接口,即使它们甚至不能饱和3Gbps链路。 但是我认为戴尔不会用高端服务器来做到这一点。
我漫步谷歌的土地,看看我的期望是不合理的,但我没有发现任何明确的。
问题:这个设置有什么合理的期望? 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
caching读取是相当摇滚,但我期望从缓冲读取更多。 我相信两个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
6 Gbs是SAS链接的速度,而不是单个磁盘的IOconfiguration文件。
通常情况下,SAS背板的速度将被协商为最低公分母,因此您会发现仍然支持高速SAS链路的低速磁盘可让您将磁盘混合到单个(外部)机柜或背板中,从并行IO传播到更多数量的磁盘上。
类似3 TB 7.2k 6 GB SAS磁盘的HP IOconfiguration文件是:
SAS Midline驱动器适用于需要高容量的服务器和存储解决scheme。 这些驱动器对于非关键任务,低工作负载应用程序(如磁盘备份,归档和参考应用程序)具有适中的可靠性和性能。
hdparm充其量只是原始磁盘性能的一个指标,但它完全绕过了文件系统,也不会模拟更多的随机IO,AFAIK。 看看什么是一个好的免费开源硬盘基准?
hdparm -T将从本质上testing读取磁盘caching(即CPU和内存)的性能。 这testing了当文件被caching在内存时你将得到什么样的读取速度(参见free命令的caching部分)。
近线SAS驱动器不是完整的SAS驱动器。 与使用SAS接口的SAS驱动器相比,它们具有相同的优点,但仍然是7200rpm的机械驱动器。 你给出的hdparm -t数字大约相当于RAID0中的两个驱动器。 作为比较,3TB SATA驱动器通常约为150MB / s。
为了获得更好的性能,您将会考虑添加更多驱动器。 以Hadoop为例,build议在每GB获得最佳价格,并使用更多驱动器并向集群添加更多服务器。 如果您需要高清性能,更高容量的SSD可能更适合,但由于更频繁的读取/写入周期,大量使用可能会导致提前失败。