2005-02-17
_ IDE HDDドライバをhdparmで最適化
サーバ周りでなんかチューニングできないかなぁと探していたところ,hdparmでIDE HDDを最適化というものを見つけました.そういえば以前試してみようと思ってそのまま放置していたので,せっかくなのでやってみました.
まず,hdparmをインストール.
$ sudo apt-get install hdparm
ディスクの装着状態をチェック
$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/hda2 4024220 1383720 2436076 37% / /dev/hda1 101089 12053 83817 13% /boot /dev/hda4 14587320 4745548 9100776 35% /home
/dev/hdaに対してベンチマークを実行
$ sudo hdparm -t /dev/hda /dev/hda: Timing buffered disk reads: 14 MB in 3.49 seconds = 4.01 MB/sec
さて,現状は上記のような状態なわけですが,これがチューニングによってどの程度改善されるのか.参考にしたサイトでは以下の項目についてあげられています.
- IDE 32-bit IO
- DMA
- multiple sector count
- unmaskirq
それぞれの設定の組み合わせで効果を測定します.
---- IDE 32-bit IO ---- $ sudo hdparm -c1 /dev/hda $ sudo hdparm -t /dev/hda /dev/hda: Timing buffered disk reads: 20 MB in 3.05 seconds = 6.56 MB/sec ---- DMA ---- $sudo hdparm -c0 -d1 /dev/hda $ sudo hdparm -t /dev/hda /dev/hda: Timing buffered disk reads: 68 MB in 3.09 seconds = 22.01 MB/sec --- multiple sector count ---- $sudo hdparm -c0 -d0 -m16 /dev/hda $ sudo hdparm -t /dev/hda /dev/hda: Timing buffered disk reads: 14 MB in 3.11 seconds = 4.50 MB/sec ---- unmaskirq ---- $sudo hdparm -c0 -d0 -m0 -u1 /dev/hda $ sudo hdparm -t /dev/hda /dev/hda: Timing buffered disk reads: 12 MB in 3.00 seconds = 4.00 MB/sec
上記の結果からDMAをONにすると劇的に早くなることがわかります.それぞれを組み合わせて見た結果,「IDE 32-bit IO」と「DMA」を有効にするともっとも効果を発揮してくれるみたいです.あとはこの設定を起動時に有効にするために,/etc/hdparm.confに,
/dev/hda { # mult_sect_io = 16 # write_cache = off dma = on io32_support = 1 }
これで起動に/etc/hdparm.confを読みにいくので,いつでも有効になります.