SmallStyle


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を読みにいくので,いつでも有効になります.


about me

いろいろと興味を持ったことを書いてます.ちょっとしたことは hb(@smallstyle) on Twitter で書いてます.

Archive

2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|12|