2009/02/15(日) [n年前の日記]
#1 [pc][linux] PenIII 800MHz機にUbuntu Linux 8.04をインストールしたのだけどHDDがとんでもなく遅い
積んであるHDDは以下。
HDDのパフォーマンスその他を調べるコマンド、hdparm で情報を得てみる。
速度を調べてみる。
色々検索したけれど、どうも最近のLinuxは libata なるものを使うことで、SATA接続、もしくはIDE接続されたHDDを、SCSI HDDとして扱うようになっているそうで。その関係で、hdparm はほとんど使えないコマンドになり果てているのだとか。巷の情報によると、libata が自動的にそのHDDにとって最適な設定をしてくれてる、ということになってるらしいが。どう見てもコレは最適な状態になってないように思える。Ultra DMA/66対応HDDがこの速度ってのはあり得ないだろうと。ちょっと前までは、Linuxをインストールするなら枯れたハードに、というのが苦労しないコツだったはずが。いつからSATA HDD等最新の環境を用意しなきゃいけない状況になったのやら。なんだか困るなあ。
などと思ったのだけど。どうも libata のせいではなかったらしい。knoppix 5.3.1 DVD版を起動して、/dev/hda (Ubuntuでは /dev/sda)を hdparm -t /dev/hda で測定してみたら、Ubuntu の時と似たような速度しか出なかった。ということは、この30GBのHDDは、速度的にこれで正解ということなんだろうか。しかしいくら古いとは言え、他のIDE HDDの1/10の速度しか出ないのもなんだかおかしな話。いや、昔のHDDってのは、そういうものなのかな。あるいは、HDD消去を試みていた際に、アクセスし過ぎで制御基板が熱で壊れたとか、あるいは設置がテキトーだったから軸でもおかしくしてしまったのだろうか。
何にしてもこれじゃ使えないので、仕方なく30GBのソレは外すことに。80GB をmasterに接続。
- master : IDE HDD : Maxtor 53073U6 (7200rpm 30GB Ultra DMA/66)
- slave : IDE HDD : HITACHI Deskstar HDS728080PLAT20 (80GB ATA133 7200rpm)
HDDのパフォーマンスその他を調べるコマンド、hdparm で情報を得てみる。
$ sudo hdparm /dev/sda /dev/sda: IO_support = 0 (default) 16-bit) HDIO_GET_UNMASKINTR failed: Inappropriate ioctl for device HDIO_GET_DMA failed: Inappropriate ioctl for device HDIO_GET_KEEPSETTINGS failed: Inappropriate ioctl for device readonly = 0 (off) readahead = 256 (on) geometry = 3736/255/63, sectors = 60030432, start = 0 $ sudo hdparm /dev/sdb /dev/sdb: IO_support = 0 (default) 16-bit) HDIO_GET_UNMASKINTR failed: Inappropriate ioctl for device HDIO_GET_DMA failed: Inappropriate ioctl for device HDIO_GET_KEEPSETTINGS failed: Inappropriate ioctl for device readonly = 0 (off) readahead = 256 (on) geometry = 10011/255/63, sectors = 160836480, start = 0
速度を調べてみる。
$ sudo hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 8 MB in 3.35 seconds = 2.39 MB/sec $ sudo hdparm -t /dev/sdb /dev/sdb: Timing buffered disk reads: 84 MB in 3.04 seconds = 27.59 MB/secslave側はともかく、master側が遅い。さてはDMAが有効になっていないのか、と思ったのだけど。
$ sudo hdparm -d1 /dev/sda /dev/sda: setting using_dma to 1 (on) HDIO_SET_DMA failed: Inappropriate ioctl for device HDIO_GET_DMA failed: Inappropriate ioctl for deviceDMAを有効にしようとすると、怒られてしまう。
色々検索したけれど、どうも最近のLinuxは libata なるものを使うことで、SATA接続、もしくはIDE接続されたHDDを、SCSI HDDとして扱うようになっているそうで。その関係で、hdparm はほとんど使えないコマンドになり果てているのだとか。巷の情報によると、libata が自動的にそのHDDにとって最適な設定をしてくれてる、ということになってるらしいが。どう見てもコレは最適な状態になってないように思える。Ultra DMA/66対応HDDがこの速度ってのはあり得ないだろうと。ちょっと前までは、Linuxをインストールするなら枯れたハードに、というのが苦労しないコツだったはずが。いつからSATA HDD等最新の環境を用意しなきゃいけない状況になったのやら。なんだか困るなあ。
などと思ったのだけど。どうも libata のせいではなかったらしい。knoppix 5.3.1 DVD版を起動して、/dev/hda (Ubuntuでは /dev/sda)を hdparm -t /dev/hda で測定してみたら、Ubuntu の時と似たような速度しか出なかった。ということは、この30GBのHDDは、速度的にこれで正解ということなんだろうか。しかしいくら古いとは言え、他のIDE HDDの1/10の速度しか出ないのもなんだかおかしな話。いや、昔のHDDってのは、そういうものなのかな。あるいは、HDD消去を試みていた際に、アクセスし過ぎで制御基板が熱で壊れたとか、あるいは設置がテキトーだったから軸でもおかしくしてしまったのだろうか。
何にしてもこれじゃ使えないので、仕方なく30GBのソレは外すことに。80GB をmasterに接続。
- IDEHDD : Seagate Barracuda 7200.7 ST3120022A (120GB 7200rpm)
◎ Vine Linux 4.2 と Ubuntu Linux 8.10 を再インストール。 :
Vine を入れた後から Ubuntu を入れたのだけど。Ubuntuインストール時に、MBRにgrubをインストールしてしまったことで、Vine が起動しなくなってしまった。うーん。
_MBM をMBRにインストールすることで、各OSをパーティションに閉じ込める(?)ことができるらしいと知り、MBMを使おうかと。インストールにはFDDが必要なのだけど、FDDが使えないM/B(FDD関係が壊れてるらしい)なので、 _Tips: MBM(ChaNさんの高機能・マルチブート用ブートローダ)をもっと便利に使う情報とツール - disklessfun’s Wiki* を参考に、Linux上からMBRにMBMをインストール。knoppix を起動。fdiskでパーティションを削除して、Ubuntu を再インストール。
_MBM をMBRにインストールすることで、各OSをパーティションに閉じ込める(?)ことができるらしいと知り、MBMを使おうかと。インストールにはFDDが必要なのだけど、FDDが使えないM/B(FDD関係が壊れてるらしい)なので、 _Tips: MBM(ChaNさんの高機能・マルチブート用ブートローダ)をもっと便利に使う情報とツール - disklessfun’s Wiki* を参考に、Linux上からMBRにMBMをインストール。knoppix を起動。fdiskでパーティションを削除して、Ubuntu を再インストール。
[ ツッコむ ]
以上です。