6.12. 调优 IDE 硬盘性能

将您的交换分区放置在驱动器的开头附近,请参阅此图表以获得更好的理解,可能会给您带来一些可接受的改进。驱动器的开头在物理上位于柱面的外侧部分,并且读/写头每次旋转可以覆盖更多的地面。我们通常看到使用以下命令放置在驱动器末尾的分区工作速度慢 3MB/shdparm -t命令。

据报告,通过设置 IDE 驱动程序以使用 DMA、32 位传输和多扇区模式,可以提高大量磁盘 I/O 操作的性能。内核似乎使用更保守的设置,除非另有说明。更改驱动器设置的神奇命令是 hdparm。要通过 PCI 总线启用 32 位 I/O,请使用命令
             [root@deep] /# /sbin/hdparm -c1 /dev/hda or hdb, hdc etc.
             
通常,根据您的 IDE 硬盘驱动器型号,这将使定时缓冲磁盘读取时间缩短 2 倍。hdparm(8) 手册页说,对于某些芯片组,您可能需要使用 -c 3。所有 (E)IDE 驱动器仍然只有通过接口卡的扁平电缆的 16 位连接。要启用 DMA,请使用命令
             [root@deep] /# /sbin/hdparm -d1 /dev/hda or hdb, hdc etc.
             
这可能取决于您的主板芯片组支持是否已编译到您的内核中。此外,此命令将为您的硬盘驱动器启用 DMA 支持,它将缩短定时缓冲磁盘读取时间,并将性能提高 2 倍。要启用多字 DMA 模式 2 传输,请使用命令
             [root@deep] /#/sbin/hdparm -d1 -X34 /dev/hda or hdb, hdc etc.
             
这为较新的 IDE/ATA2 驱动器设置 IDE 传输模式。检查您的硬件手册以查看您是否拥有它。要启用 UltraDMA 模式 2 传输,请使用命令
             [root@deep] /# /sbin/hdparm -d1 -X66 /dev/hda or hdb, hdc etc.
             

您需要事先为 UltraDMA 准备芯片组。另请参阅您的 hdparm 手册页以获取更多信息。使用时要格外小心!要设置多扇区模式 I/O,请使用命令
             [root@deep] /#/sbin/hdparm -m XX /dev/hda or hdb, hdc etc.
             
其中 XX 是您的驱动器支持的最大设置。可以使用 -i 标志来查找已安装驱动器支持的最大设置:在输出中查找 MaxMultSect。
             [root@deep] /#/sbin/hdparm -i /dev/hda or hdb, hdc etc.
             


             /dev/hda:

             Model=Maxtor 7540 AV, FwRev=GA7X4647, SerialNo=L1007YZS
             Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>5Mbs FmtGapReq }
             RawCHS=1046/16/63, TrkSize=0, SectSize=0, ECCbytes=11
             BuffType=3(DualPortCache), BuffSize=32kB, MaxMultSect=8, MultSect=8
             DblWordIO=yes, maxPIO=2(fast), DMA=yes, maxDMA=1(medium)
             CurCHS=523/32/63, CurSects=379584528, LBA=yes, LBA=yes, LBAsects=1054368
             tDMA={min:150,rec:150}, DMA modes: sword0 sword1 *sword2 *mword0
             IORDY=on/off, tPIO={min:240,w/IORDY:180}, PIO modes: mode3
             
             
             

多扇区模式,也称为 IDE 块模式,是大多数现代 IDE 硬盘驱动器的一项功能,允许每次 I/O 中断传输多个扇区,而不是通常的每次中断一个扇区。启用此功能后,通常可将磁盘 I/O 的操作系统开销减少 30-50%。在许多系统中,它还可以提供 5% 到 50% 的数据吞吐量提升。您可以通过在性能测试模式下运行 hdparm 来测试更改的结果
             [root@deep] /#/sbin/hdparm -t /dev/hda or hdb, hdc etc.
             

提示 一旦您有了一组 hdparm 选项,您可以将命令放入您的/etc/rc.d/rc.local文件中,以便在每次重新启动机器时运行它。