Linux
Tips |
|
HDDのアクセスが妙に遅く感じるときは
北浦訓行
2001/10/25
|
最近のHDDはDMAをサポートしているので、DMAに対応したマザーボードと組み合わせればCPUを介さずに直接デバイス−メモリ間のデータ転送が可能だ。しかし、DMAがオフになっているとI/Oによるアクセスになってしまうので、HDDのアクセスが遅くなってしまう。
HDDのアクセスが遅く感じられるときは、DMAがオンになっているかどうか確認しよう。DMAのオン/オフは、hdparmコマンドで確認できる。rootでログインし、調べたいデバイス名を指定してhdparmコマンドを実行する。
# hdparm /dev/hda ←/dev/hdaを調べる
/dev/hda:
multcount = 16 (on)
I/O support = 0 (default 16-bit) ←I/Oが16bitsになっている
unmaskirq = 0 (off)
using_dma = 0 (off) ←DMAがオフになっている
keepsettings = 0 (off)
nowerr = 0
(off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 782/128/63, sectors
= 6306048, start = 0 |
DMAをオンにするには、-d1オプションを付けてhdparmコマンドを実行する(ちなみに、オフにするのは-d0オプション)。
# hdparm -d1 /dev/hda
/dev/hda:
setting using_dma to 1 (on)
using_dma = 1 (on) |
DMAをサポートしていないPCの場合は、I/Oを32bitsモードにするとHDDのアクセスが速くなる。I/Oを32bitsモードにするには、-c1オプションを付けてhdparmコマンドを実行する(16bitsモードにするのは-c0オプション)。
hdparmコマンドには、HDDのベンチマークを測定するオプションがあるので、オン/オフでどれくらい速度が違うかを数字で見ることができる。ベンチマークを測定するときは、-ftオプションを付けてhdparmコマンドを実行する。
# hdparm -ft /dev/hda
/dev/hda:
Timing buffered disk reads: 64 MB in 12.21 seconds
= 5.24 MB/sec |
DMAオフの場合 |
# hdparm -ft /dev/hda
/dev/hda:
Timing buffered disk reads: 64 MB in 5.97
seconds = 10.72 MB/sec |
DMAオンの場合 |
Linux Squareフォーラム Linux Tipsカテゴリ別インデックス |
Linux & OSS 記事ランキング
本日
月間