2012年5月17日木曜日

CentOSのファイルのコピーや移動が遅い

容量の小さいファイルをコピーしたり移動している時は気が付かなかったが、大きなファイルをコピーや移動させたらやたら時間がかかる。

通常ならば、ファイルのコピーや移動はDMAによる転送になると思うので確認をすると...
ナント...
[root@hoge ~]# hdparm /dev/hda

/dev/hda:
 multcount    = 16 (on)
 IO_support   =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  0 (off)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    = 256 (on)
 geometry     = 65535/255/63, sectors = 1953525168, start = 0
[root@hoge ~]# hdparm -ft /dev/hda

/dev/hda:
 Timing buffered disk reads:    8 MB in  3.37 seconds =   2.38 MB/sec
[root@ora02 ~]# 
DMAの設定がOFFになっている。
また、転送速度もなんと 2.38 MB/sec と信じられない遅さだ。

確認すると。現在のCENTOSのバージョンでは、SATAを正しく識別できないようで、DMAの転送設定がOFFになってしまう。
早速、ググる。

grub.conf に all-generic-ide を設定するとDMAの転送が有効になるらしい。
HETARE wiki に感謝です。

title CentOS (2.6.18-308.4.1.el5xen)
        root (hd0,0)
        kernel /xen.gz-2.6.18-308.4.1.el5
        module /vmlinuz-2.6.18-308.4.1.el5xen ro root=LABEL=/ all-generic-ide rhgb quiet
        module /initrd-2.6.18-308.4.1.el5xen.img

上記を設定してリブートを行い確認をする。

リブート後の確認内容は下記の通り。

[root@hoge ~]# hdparm /dev/hde

/dev/hde:
 multcount    = 16 (on)
 IO_support   =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    = 256 (on)
 geometry     = 65535/255/63, sectors = 1953525168, start = 0
[root@hoge ~]# hdparm -ft /dev/hde

/dev/hde:
 Timing buffered disk reads:  356 MB in  3.00 seconds = 118.58 MB/sec

転送時間が約50倍早くなった。よかった。

0 件のコメント:

コメントを投稿