Linux下的32位I/O和DMA默認(rèn)是關(guān)閉的。如果用的是16位I/O的話,就無法充分發(fā)揮電腦的性能。
如果要打開32位I/O和DMA,就需要以root身份進(jìn)行設(shè)置。為了降低因出錯而重啟系統(tǒng)對文件系統(tǒng)的損害,最好以單用戶模式進(jìn)行。
首先,使用下面的命令檢查硬盤驅(qū)動器的當(dāng)前I/O情況:
[root@anima lwg]# /sbin/hdparm -t /dev/hda
/dev/hda:
Timing buffered disk reads: 8 MB in 3.31 seconds = 2.42 MB/sec
[root@anima lwg]#
如果要顯示當(dāng)前I/O、DMA設(shè)置,可以分別使用下面的命令:
[root@anima lwg]# /sbin/hdparm -c /dev/hda (顯示當(dāng)前I/O設(shè)置)
/dev/hda:
IO_support = 0 (default 16-bit)
[root@anima lwg]# /sbin/hdparm -d /dev/hda (顯示當(dāng)前DMA設(shè)置)
/dev/hda:
using_dma = 0 (off)
[root@anima lwg]#
通過上面的命令,已經(jīng)知道現(xiàn)在32位I/O和DMA是關(guān)閉的,可以分別用下面的命令將其打開:
[root@anima lwg]# /sbin/hdparm -c 1 /dev/hda (打開32位I/O)
/dev/hda:
setting 32-bit IO_support flag to 1
IO_support = 1 (32-bit)
[root@anima lwg]# /sbin/hdparm -d 1 /dev/hda (打開DMA)
/dev/hda:
setting using_dma to 1 (on)
using_dma = 1 (on)
[root@anima lwg]#
然后使用下面的命令使設(shè)置生效:
[root@anima lwg]# /sbin/hdparm -k 1 /dev/hda
/dev/hda:
setting keep_settings to 1 (on)
keepsettings = 1 (on)
[root@anima lwg]#
好啦!現(xiàn)在再查看一下驅(qū)動器的I/O情況:
[root@anima lwg]# /sbin/hdparm -t /dev/hda
/dev/hda:
Timing buffered disk reads: 116 MB in 3.03 seconds = 38.34 MB/sec
[root@anima lwg]#
可以看到,現(xiàn)在系統(tǒng)的I/O性能提高了很多。
但是,上面的設(shè)置只是對當(dāng)前的系統(tǒng)有效,當(dāng)再次重啟系統(tǒng)時,又得重新設(shè)置了。
如果要使每次系統(tǒng)啟動時都打開DMA,可以在/etc/rc.d/rc.local文件中添加上面的命令來實現(xiàn):
[root@anima lwg]# echo "/sbin/hdparm -c 1 -d 1 -k 1 /dev/hda" >> /etc/rc.d/rc.local
[root@anima lwg]#