您的位置:首页 > 运维架构 > Linux

Linux使用dd命令测试硬盘读写速度

2013-09-04 14:18 579 查看
>Linux服务器装好系统之后,想要知道硬盘的读写是否能满足服务的需要,如果不满足硬盘的IO就是服务的一个瓶颈。所以我们需要测试硬盘的读写速度,测试的方法很多,下面是使用Linux自带的dd命令测试硬盘的读写速度。

time有计时作用,dd用于复制,从if读出,写到of。if=/dev/zero不产生IO,因此可以用来测试纯写速度。同理of=/dev/null不产生IO,可以用来测试纯读速度。bs是每次读或写的大小,即一个块的大小,count是读写块的数量。

测/data目录所在磁盘的纯写速度:

[root@nagios~]#timeddif=/dev/zeroof=/var/testbs=8kcount=1000000

1000000+0recordsin

1000000+0recordsout

8192000000bytes(8.2GB)copied,52.5749seconds,156MB/s

real0m55.841s

user0m0.507s

sys0m15.706s

##红色部分是因为使用了time命令才显示的,因此需要time命令来计算复制的时间。

测/data目录所在磁盘的纯读速度:

[root@nagios~]#timeddif=/var/testof=/dev/nullbs=8kcount=1000000

1000000+0recordsin

1000000+0recordsout

8192000000bytes(8.2GB)copied,49.0088seconds,167MB/s

real0m49.025s

user0m0.559s

sys0m6.383s

测读写速度:

[root@nagios~]#timeddif=/var/testof=/tmp/testbs=8kcount=1000000

125000+0recordsin

125000+0recordsout

8192000000bytes(8.2GB)copied,129.239seconds,63.4MB/s

real2m9.251s

user0m0.114s

sys0m21.494s

看来这个测试结果还不错,嘿嘿
备注:理论上测试复制量越大测试结果越准确。

正常测试的时候可能不止测试一边,可能会需要很多遍求取平均值,这个测试结果在普通的重定向是没有效果的之后google了一下用下面的方式重定向到一个文件

ddif=/dev/zeroof=/var/testbs=8kcount=10000002>>info

这样测试的结果就到info文件里面了

hdparm测试硬盘读写速度

安装:yuminstallhdparm

语  法: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:
Timingbuffereddiskreads:
316
MBin
3.02
seconds=
104.71
MB/sec
#hdparm-T/dev/sda
/dev/sda:
Timingcachedreads:
19328
MBin
1.99
seconds=
9691.24
MB/sec
RAID0测试(两块盘):

#hdparm-t/dev/sdb
/dev/sdb:
Timingbuffereddiskreads:
622
MBin
3.01
seconds=
206.89
MB/sec
#hdparm-T/dev/sdb1
/dev/sdb1:
Timingcachedreads:
19632
MBin
1.99
seconds=
9844.20
MB/sec
RAID0测试(三块盘):

#hdparm-t/dev/sdb
/dev/sdb:
Timingbuffereddiskreads:
846
MBin
3.00
seconds=
281.54
MB/sec
#hdparm-T/dev/sdb
/dev/sdb:
Timingcachedreads:
18412
MBin
1.99
seconds=
9229.67
MB/sec
RAID0测试(四块盘)

/dev/sdb:
Timingcachedreads:
19608
MBin
1.99
seconds=
9832.76
MB/sec
Timingbuffereddiskreads:
860
MBin
3.00
seconds=
286.35
MB/sec
另外ARID卡测试速度后,每次会警告:

HDIO_DRIVE_CMD(
null
)(wait
for
flushcomplete)failed:Inappropriateioctl
for
device
参考测试速度方法:timecp-adata2data2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: