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 Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間