我刚拿到一台HP DL180 G6,它有25X 146GB 15K SAS硬盘,36GB RAM,2X 2.0GHz Xeon 1333Mhz FSB。 为了好玩,我将它们全部configuration在单个RAID 0中,并在其上安装了Ubuntu,以了解HP Smart Array P410控制器(配有512MB RAM)上的25个驱动器的速度。
当我运行hdparm -tT / dev / mapper / concorde -vg-root时,我得到了
Timing cached reads: 5658MB in 1.99 seconds = 2834.13 MB/sec Timing buffered disk reads: 1192 MB in 3.00 seconds = 397.13 MB/sec
当我在其他服务器上运行相同的命令(HP DL360 G5 – 32GB内存 – 2X 2.66GHz 667Mhz FSB),只有4X 15K驱动器时,我得到:
Timing cached reads: 13268 MB in 1.99 seconds = 6665.18 MB/sec Timing buffered disk reads: 712 MB in 3.00 seconds = 237.17 MB/sec
我预料到这个速度会比旧的速度快5倍,而不是更慢。 服务器旨在提供stream媒体,所以我需要超级快速的访问和传输,以跟上2个1Gbnetworking端口,我希望有时最大限度地与执行其他任务。
我只是把一堆400MB的MP4文件拷贝到一个目录中,而从一个目录拷贝到另一个目录,花费了96秒,这对于我所听说过的RAID 0的性能提升来说似乎是错误的。
它被设置为一个硬件RAID,有什么我需要做的Linux在利用应该在那里额外的速度的优势? 我使用的是哪种Linux? 我对CentOS和Ubuntu很舒服,但是如果需要的话可以做别人。
我应该使用不同的命令来衡量性能吗? 我昨天试图使用iotop和iostat来监视RAID的使用情况,并无法通过FTP复制2GB文件时报告任何使用情况,所以试图设置一个基准,比较它在各个服务器之间的性能,并对其进行监控知道什么时候硬盘驱动器正在最大化,需要用SSD来替代。
哇…这里有很多要说的。
磁盘性能不仅仅是吞吐量。 有IOPS的概念和延迟和服务时间来抗衡。 大多数工作负载本质上是有点随意的,因此arrays中的25个企业磁盘总是从IOPS的angular度来看胜4个磁盘。
hdparm不是testing企业存储的正确工具。 研究像iozone和fio这样的专门开发的程序。
一个可能对你有用的iozone命令的例子是( 从你想testing的磁盘arrays上的一个大目录运行 ): iozone -t1 -i0 -i1 -i2 -r1m -s72g
此服务器的devise意味着您的磁盘背板超额认购。 服务器上有一个扩展器芯片,这25个磁盘共享一个4通道6Gbps连接到RAID控制器。 这意味着arrays的理论最大吞吐量为24Gbps (或3,000兆字节/秒) 。 这是一个天花板,你不会看到超过这一点的performance。
在硬件驱动和支持方面,Ubuntu几乎不是最好的select。它并没有得到官方的支持。 CentOS或者RHEL会更适合这个硬件。
惠普智能arrays控制器能够将一组磁盘(arrays)分割成多个不同容量和RAID级别的逻辑驱动器。 下面的例子显示了一个4个磁盘arrays分成三个逻辑驱动器。 其中一个逻辑驱动器configuration了与其他RAID级别不同的RAID级别。
插槽0(embedded式)中的Smart Array P420i(sn:0014380296200A0)
logicaldrive 1 (72.0 GB, RAID 1+0, OK) logicaldrive 2 (1024.0 GB, RAID 1+0, OK) logicaldrive 3 (869.1 GB, RAID 5, OK) physicaldrive 1I:2:1 (port 1I:box 2:bay 1, SAS, 900.1 GB, OK) physicaldrive 1I:2:2 (port 1I:box 2:bay 2, SAS, 900.1 GB, OK) physicaldrive 1I:2:3 (port 1I:box 2:bay 3, SAS, 900.1 GB, OK) physicaldrive 1I:2:4 (port 1I:box 2:bay 4, SAS, 900.1 GB, OK)
在这里你不应该使用RAID 0作为逻辑驱动器。 如果您可以节省空间,那么RAID 1 + 0在这个硬件组合上performance会非常好。
你有LVM的地方。 使用这些HP Smart Array RAID控制器时,这不是最好的方法。 这是一个额外的抽象层,你不会看到最好的性能(尽pipe它可以调整到良好的状态)。
固件。 您将需要更新服务器和相关组件的固件。 每个HP RAID控制器固件版本都会提高function。
RAIDcachingconfiguration。 确保RAID电池运行正常,并且caching读写平衡适合您的工作负载。
文件系统的select。 XFS是stream媒体的一个很好的select。 但是你要求的费率相对较低。 任何现代Linux文件系统都应该没问题。
有一件事立刻就跳出来,就是新服务器的低caching吞吐量,这表明你有一个内存瓶颈。 你提到它有36 GB的内存,这是一个奇数的位。 我敢打赌,你没有成对的安装内存(或3倍,如果这个CPU /板是能够三重交错,我猜是这样),所以内存不正确交错。 您可以运行memtest86+以获得内存吞吐量的良好测量。
至于实际的IO吞吐量,对于一个这么大的数组,您可能不会向它提出足够的请求。 hdparm只读取2个MiB,所以如果数组使用512k条带因子,那么一次只能保持4个驱动器处于忙碌状态。 对于像dd这样的其他命令,它取决于readahead大小,默认的readahead大小只有128 kb。 尝试使用dd而不是hdparm (不带iflag=direct ),并在/ sys / block / dm-X / queue / read_ahead_kb中抽取readahead因子,以确保内核发送足够大的请求来保持所有驱动器处于忙碌状态,你可以使用iflag=direct和dd ,然后确保为bs=使用一个非常大的值,比如32MiB,然后内核预先设置就不重要了。