优化Linux系统硬盘的七个实用技巧( 二 )


五、调整硬盘参数
使用hdparm工具可以调整IDE硬盘性能,它设计时专门考虑了使用UDMA驱动器 。在缺省情况下,Linux使用是最安全的,但是设置访问IDE驱动器是最慢的 。缺省模式没有利用UDMA可能的最快的性能 。
使用hdparm工具,通过激活下面的特性可以显著地改善性能:
◆ 32位支持 缺省设置是16位;
◆ 多部分访问 缺省设置是每次中断单部分传送 。
注意:在使用hdparm之前,确保对系统已经做了完全的备份 。使用hdparm改变IDE参数,如果出错可能会引起驱动器上全部数据的丢失 。
hdparm可以提供关于硬盘的大量信息 。打开一个终端窗口,输入下面命令获取系统中第一个IDE驱动器的信息(改变设备名获取其它IDE驱动器的信息):
hdparm -v /dev/had
上面命令显示出当系统启动时从驱动器获得的信息,包括驱动器操作在16位或32位模式(I/O Support)下,是否为多部分访问(Multcount) 。关于磁盘驱动器的更详细信息的显示可使用-i参数 。
Hdparm也可以测试驱动器传输速率 。输入命令测试系统中第一个IDE驱动器:
hdparm -Tt /dev/hda
此测试可测量驱动器直接读和高速缓冲存储器读的速度 。结果是一个优化的“最好的事例”数字 。改变驱动器设置,激活32位传输,输入下面的命令:
hdparm -c3 /dev/hda
-c3参数激活32位支持,使用-c0可以取消它 。-c1参数也可激活32位支持并使用更少的内存开销,但是在很多驱动器下它不工作 。
大多数新IDE驱动器支持多部分传输,但是Linux缺省设置为单部分传输 。注意:这个设置在一些驱动器上,激活多部分传输能引起文件系统的完全崩溃 。这个问题大多数发生在较老的驱动器上 。输入下面的命令激活多部分传输:
hdparm -m16 /dev/hda
-m16参数激活16部分传输 。除了西部数据的驱动器外,大多数驱动器设置为16或32部分是最合适的 。西部数据的驱动器缓冲区小,当设置大于8部分时性能将显著下降 。对西部数据驱动器来说,设置为4部分是最合适的 。
激活多部分访问能够减少CPU负载30%~50%,同时可以增加数据传输速率到50% 。使用-m0参数可以取消多部分传输 。
hdparm还有许多选项可设置硬盘驱动器,在此不详述 。
六、使用软件RAID
RAID廉价驱动器的冗余阵列,也可以改善磁盘驱动器性能和容量 。Linux支持软件RAID和硬件RAID 。软件RAID嵌入在Linux内核中,比硬件RAID花费要少得多 。软件RAID的惟一花费就是购买系统中的磁盘,但是软件RAID不能使硬件RAID的性能增强 。硬件RAID使用特殊设计的硬件,控制系统的多个磁盘 。硬件RAID可能是昂贵的,但是得到的性能改善与之相匹配 。RAID的基本思想是组合多个小的、廉价的磁盘驱动器成为一个磁盘驱动器阵列,提供与大型计算机中单个大驱动器相同的性能级别 。RAID驱动器阵列对于计算机来说像单独一个驱动器,它也可以使用并行处理 。磁盘读写在RAID磁盘阵列的并行数据通路上同时进行 。
IBM公司在加利福尼亚大学发起一项研究,得到RAID级别的一个最初定义 。现在有六个已定义的RAID级别,如下所示 。
RAID 0:级别0只是数据带 。在级别0中,数据被拆分到多于一个的驱动器,结果是更高的数据吞吐量 。这是RAID的最快和最有效形式 。但是,在这个级别没有数据镜像,所以在阵列中任何磁盘的失败将引起所有数据的丢失 。
RAID 1:级别1是完全磁盘镜像 。在独立的磁盘上创建和支持数据两份拷贝 。级别1阵列与一个驱动器相比读速度快、写速度慢,但是如果任一个驱动器错误,不会有数据丢失 。这是最昂贵的RAID级别,因为每个磁盘需要第二个磁盘做它的镜像 。这个级别提供最好的数据安全 。

推荐阅读