Linux使⽤dd命令或hdparm命令测试硬盘读写速度
Linux服务器装好系统之后,想要知道硬盘的读写是否能满⾜服务的需要,如果不满⾜硬盘的IO就是服务的⼀个瓶颈。所以我们需要测试硬盘的读写速度,测试的⽅法很多,下⾯是使⽤Linux ⾃带的dd命令测试硬盘的读写速度。
time有计时作⽤,dd⽤于复制,从if读出,写到of。if=/dev/zero不产⽣IO,因此可以⽤来测试纯写速度。同理of=/dev/null不产⽣IO,可以⽤来测试纯读速度。bs是每次读或写的⼤⼩,即⼀个块的⼤⼩,count是读写块的数量。
测/data⽬录所在磁盘的纯写速度:
[root@nagios ~]# time dd if=/dev/zero of=/var/test bs=8k count=1000000
1000000+0 records in
1000000+0 records out
8192000000 bytes (8.2 GB) copied, 52.5749 seconds, 156 MB/s
real 0m55.841s
user 0m0.507s
sys 0m15.706s
##红⾊部分是因为使⽤了time命令才显⽰的,因此需要time命令来计算复制的时间。
测/data⽬录所在磁盘的纯读速度:
[root@nagios ~]# time dd if=/var/test of=/dev/null bs=8k count=1000000
1000000+0 records in
1000000+0 records out
8192000000 bytes (8.2 GB) copied, 49.0088 seconds, 167 MB/s
real 0m49.025s
user 0m0.559slinux怎么读光盘
sys 0m6.383s
测读写速度:
[root@nagios ~]# time dd if=/var/test of=/tmp/test bs=8k count=1000000
125000+0 records in
125000+0 records out
8192000000 bytes (8.2 GB) copied, 129.239 seconds, 63.4 MB/s
real 2m9.251s
user 0m0.114s
sys 0m21.494s
看来这个测试结果还不错,嘿嘿
备注:理论上测试复制量越⼤测试结果越准确。
正常测试的时候可能不⽌测试⼀边,可能会需要很多遍求取平均值,这个测试结果在普通的重定向是没有效果的之后 google 了⼀下⽤下⾯的⽅式重定向到⼀个⽂件
dd if=/dev/zero of=/var/test bs=8k count=1000000 2>> info
这样测试的结果就到info⽂件⾥⾯了
hdparm 测试硬盘读写速度
安装:yum install hdparm
语  法: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或SCSI硬盘的参数。
参  数:
-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 -t /dev/sda
/dev/sda:
Timing buffered disk reads: 316 MB in 3.02 seconds = 104.71 MB/sec
# hdparm -T /dev/sda
/dev/sda:
Timing cached reads: 19328 MB in 1.99 seconds = 9691.24 MB/sec
RAID0测试(两块盘):
# hdparm -t /dev/sdb
/dev/sdb:
Timing buffered disk reads: 622 MB in 3.01 seconds = 206.89 MB/sec
# hdparm -T /dev/sdb1
/dev/sdb1:
Timing cached reads: 19632 MB in 1.99 seconds = 9844.20 MB/sec
RAID0测试(三块盘):
# hdparm -t /dev/sdb
/dev/sdb:
Timing buffered disk reads: 846 MB in 3.00 seconds = 281.54 MB/sec
# hdparm -T /dev/sdb
/dev/sdb:
Timing cached reads: 18412 MB in 1.99 seconds = 9229.67 MB/sec
RAID0测试(四块盘)
/dev/sdb:
Timing cached reads: 19608 MB in 1.99 seconds = 9832.76 MB/sec
Timing buffered disk reads: 860 MB in 3.00 seconds = 286.35 MB/sec
另外ARID卡测试速度后,每次会警告:
HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl for device 参考测试速度⽅法:time cp -a data2 data2

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。