>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.559s
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
看来这个测试结果还不错,嘿嘿
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.559s
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模式> |
-C |
-d< 0 或 1 > |
-f |
-g |
-h |
-i |
-I |
-k< 0 或 1 > |
-K< 0 或 1 > |
-m<磁区数> |
-n< 0 或 1 > |
-p<PIO模式> |
-P<磁区数> |
-q |
-r< 0 或 1 > |
-S<时间> |
-t |
-T |
-u< 0 或 1 > |
-v |
-W< 0 或 1 > |
-X<传输模式> |
-y |
-Y |
-Z |
测试硬盘的读取速度:
普通磁盘测试:
# 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