Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1827744
  • 博文数量: 334
  • 博客积分: 11301
  • 博客等级: 上将
  • 技术积分: 3452
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-18 10:19
个人简介

路虽弥,不行不至;事虽少,不做不成。

文章分类

全部博文(334)

文章存档

2013年(4)

2012年(19)

2011年(27)

2010年(71)

2009年(45)

2008年(15)

2007年(84)

2006年(69)

分类:

2006-10-18 14:11:07



介紹

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 讓開機時自動執行

阅读(970) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~