介紹
hdparm 是一個用來最佳化硬碟的工具, 可用來開啟硬碟的 DMA 模式及 I/O 模式等等…
為什麼要用 DMA 模式?
當一裝備有資料需傳輸到記憶體時. CPU 要把資料從裝備讀出再由 CPU 寫到記憶體. 所有的動作均由 CPU 控制. 非常不符效率. 而 DMA 即是不透過 CPU 而直接由裝備寫到記憶體. 如此有非常好的效率. 例如軟碟機即是透過 DMA 來傳送資料.
安裝
[root]# apt-get install hdparm
使用
Usage: hdparm [options] [device] ..
Options:
-a get/set fs readahead
-A set drive read-lookahead flag (0/1)
-b get/set bus state (0 == off, 1 == on, 2 == tristate)
-B set Advanced Power Management setting (1-255)
-c 設定 IDE 32-bit I/O 模式
-C 檢查 IDE 電源模式狀態
-d 設定 開啟 DMA 模式
-D enable/disable drive defect-mgmt
-E set cd-rom drive speed
-f flush buffer cache for device on exit
-g display drive geometry
-h display terse usage information
-i 顯示磁碟識別資料
-I detailed/current information directly from drive
-Istdin similar to -I, but wants /proc/ide/*/hd?/identify as input
-k get/set keep_settings_over_reset flag (0/1)
-K set drive keep_features_over_reset flag (0/1)
-L set drive doorlock (0/1) (removable harddisks only)
-M get/set acoustic management (0-254, 128: quiet, 254: fast) (EXPERIMENTAL)
-m get/set multiple sector count
-n get/set ignore-write-errors flag (0/1)
-p set PIO mode on IDE interface chipset (0,1,2,3,4,…)
-P set drive prefetch count
-q change next setting quietly
-Q get/set DMA tagged-queuing depth (if supported)
-r get/set readonly flag (DANGEROUS to set)
-R register an IDE interface (DANGEROUS)
-S set standby (spindown) timeout
-t perform device read timings
-T perform cache read timings
-u get/set unmaskirq flag (0/1)
-U un-register an IDE interface (DANGEROUS)
-v defaults; same as -mcudkrag for IDE drives
-V display program version and exit immediately
-w perform device reset (DANGEROUS)
-W set drive write-caching flag (0/1) (DANGEROUS)
-x tristate device for hotswap (0/1) (DANGEROUS)
-X 設定 IDE xfer 工作模式 (DANGEROUS)
-y put IDE drive in standby mode
-Y put IDE drive to sleep
-Z disable Seagate auto-powersaving mode
-z re-read partition table
開啟 32 bit I/O, UDMA100 模式, 例:
[root]# hdparm -d1 -c1 -X69 -m16 /dev/hda
其中的 -X69 代表 UDMA100, UDMA66 請設 -X68
詳細參考 IDE modes for hdparm -X parameters:
* PIO mode
o 0 -X08 3.3MB/sec
o 1 -X09 5.2MB/sec
o 2 -X10 8.3MB/sec NEC PC-98*1
o 3 -X11 11.1MB/sec
o 4 -X12 16.7MB/sec
* Singleword DMA mode
o 0 2.1MB/sec
o 1 4.2MB/sec
o 2 8.3MB/sec
* Multiword DMA mode
o 0 -X32 4.2MB/sec
o 1 -X33 13.3MB/sec
o 2 -X34 16.6MB/sec
* Ultra DMA mode
o 0 16MB/sec
o 1 25MB/sec
o 2 -X66 33MB/sec UDMA33
o 3 50MB/sec
o 4 -X68 66MB/sec UDMA66
o 5 -x69 100MB/sec UDMA100
測試硬碟的速度, 例:
hdparm -Tt /dev/hda
上面是測試 /dev/hda 硬碟的傳輸速度
設定
經過測試找出最佳設定值後可再安裝 hwtools 幫助開機時做自動設定
[root]# apt-get install hwtools
在 /etc/init.d/hwtools 中的 hdparm optimization 欄內加入設定, 例:
for disk in hda hdb hde hdf
do hdparm -q -d1 -c3 -m16 /dev/$disk
done
echo -n " hdparm"
上面這樣設定在每次開機的時候就會自動執行 hdparm 最佳化硬碟 /dev/hda, /dev/hdb, /dev/hde 及 /dev/hdf
unstable 版的 hdparm 可在 /etc/default/hdparm 內設定參數, 然後用 update-rc.d 讓開機時自動執行
阅读(992) | 评论(0) | 转发(0) |