Linux磁盘维护测试指令-hdparm
hdparm(hard disk parameters)功能说明:显示与设定硬盘的参数。
语法:hdparm [-CfghiIqtTvyYZ][-a <快取分区>][-A <0或1>][-c <I/O模式>][-d <0或1>][-k <0或1>][-K <0或1>][-m <分区数>][-n <0或1>][-p <PIO模式>][-P <分区数>][-r <0或1>][-S <时间>][-u <0或1>][-W <0或1>][-X <传输模式>][设备]
补充说明:hdparm可检测,显示与设定IDE或SATA硬盘的参数。
参数:
-a<快取分区> 设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。
-A<0或1> 启动或关闭读取文件时的快取功能。
-c<I/O模式> 设定IDE32位I/O模式。
-C 检测IDE硬盘的电源管理模式。
-d<0或1> 设定磁盘的DMA模式。
-f 将内存缓冲区的数据写入硬盘,并清楚缓冲区。
-g 显示硬盘的磁轨,磁头,磁区等参数。
-h 显示帮助。
-i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。
-I 直接读取硬盘所提供的硬件规格信息。
-k<0或1> 重设硬盘时,保留-dmu参数的设定。
-K<0或1> 重设硬盘时,保留-APSWXZ参数的设定。
-m<磁区数> 设定硬盘多重分区存取的分区数。
-n<0或1> 忽略硬盘写入时所发生的错误。
-p<PIO模式> 设定硬盘的PIO模式。
-P<磁区数> 设定硬盘内部快取的分区数。
-q 在执行后续的参数时,不在屏幕上显示任何信息。
-r<0或1> 设定硬盘的读写模式。
-S<时间> 设定硬盘进入省电模式前的等待时间。
-t 评估硬盘的读取效率。
-T 平谷硬盘快取的读取效率。
-u<0或1> 在硬盘存取时,允许其他中断要求同时执行。
-v 显示硬盘的相关设定。
-W<0或1> 设定硬盘的写入快取。
-X<传输模式> 设定硬盘的传输模式。
-y 使IDE硬盘进入省电模式。
-Y 使IDE硬盘进入睡眠模式。
-Z 关闭某些Seagate硬盘的自动省电功能。
用法示例
显示硬盘的相关设置
hdparm /dev/sda
/dev/sda:
IO_support = 0 (default 16-bit)
readonly = 0 (off)
readahead = 256 (on)
geometry = 486401[柱面数]/255[磁头数]/63[扇区数], sectors = 7814037168[总扇区数], start = 0[起始扇区数]
显示硬盘的柱面、磁头、扇区数
hdparm -g /dev/sda
geometry = 486401[柱面数]/255[磁头数]/63[扇区数], sectors = 7814037168[总扇区数], start = 0[起始扇区数]
评估硬盘的读取效率
hdparm -t /dev/sda
Timing buffered disk reads: 524 MB in 3.01 seconds = 174.21 MB/sec
评估硬盘快取的读取效率
Timing cached reads: 20318 MB in 2.00 seconds = 10170.42 MB/sec
这两个参数是查看硬盘的读写性能的,一个是cache,一个buffer,其中两参数含义:
-T perform cache read timings显示了不存取磁盘直接从Linux缓存读取数据的速度. 测量实际上标示了被测系统的处理器,缓存和内存的吞吐量.
-t perform device read timings显示了不使用预先的数据缓冲, 标示了Linux下没有任何文件系统开销时磁盘可以支持多快的连续数据读取.
使用DMA方式传输数据可以占用更少的CPU资源,因此与其它操作系统一样,Linux支持硬盘以DMA方式转输数据。
检测IDE硬盘的电源管理模式
hdparm -C /dev/sda
drive state is: active/idle
显示IDE硬盘的内定硬件规格
hdparm -i /dev/sda
Model=HGST HUS724040ALA640, FwRev=MFAOAAXX, SerialNo=PN2638P4H8YYXX
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=56
BuffType=DualPortCache, BuffSize=unknown, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=7814037168
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
AdvancedPM=yes: disabled (255) WriteCache=enabled
Drive conforms to: unknown: ATA/ATAPI-2,3,4,5,6,7
* signifies the current active mode
检测硬盘的硬件规格信息
hdparm -I /dev/sda
有较长的输出,这里省略...
检测并设置IDE硬盘的32位I/O模式(提高传输效率)
hdparm -c /dev/sda
IO_support = 0 (default 16-bit) [默认16位I/O]
设置
hdparm -c 1 /dev/sda
检测并设置IDE硬盘的DMA模式(目的同上)
hdparm -d /dev/sda
hdparm -d 1 /dev/sda
读取文件时,预先存入快取的扇区数
hdparm -a /dev/sda
readahead = 256 (on)
查询并设置硬盘多重扇区存取的扇区数,以增进硬盘的存取效率
hdparm -m /dev/sda
hdparm -m 参数值为整数值如16 /dev/sda
将内置缓冲区的数据写入硬盘,并清除缓冲区的数据
hdparm -f /dev/sda
显示硬盘的柱面、磁头、扇区数
hdparm -g /dev/sda
geometry = 35539[柱面数]/255[磁头数]/63[扇区数], sectors = 570949632[总扇区数], start = 0[起始扇区数]
hdparm的改变是个临时的状态,下次再次启动Linux系统的时候hdparm将会消失。所以要想永久的保存修改后的信息,就必须把修改后的参数和数据写入/etc/rc.d/rc.local文档,甚至比启动过程要早运行的脚本程序中。它是linux上专业的测试IDE/ATA磁盘的工具,但是使用范围有局限性(对SATA硬盘作用有限)。