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

>Linux服务器装好系统之后,想要知道硬盘的读写是否能满足服务的需要,如果不满足硬盘的IO就是服务的一个瓶颈。所以我们需要测试硬盘的读写速度,测试的方法很多,下面是使用Linux 自带的dd命令测试硬盘的读写速度。
 
time有计时作用,dd用于复制,从if读出,写到of。if=/dev/zero不产生IO,因此可以用来测试纯写速度。同理of=/dev/null不产生IO,可以用来测试纯读速度。bs是每次读或写的大小,即一个块的大小,count是读写块的数量。
 
测/data目录所在磁盘的纯写速度:
 
[[email protected] ~]# 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目录所在磁盘的纯读速度:
 
[[email protected] ~]# 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
 
测读写速度:
 
[[email protected] ~]# 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 <01>][-c <I/O模式>][-d <01>][-k <01>][-K <01>][-m
<分区数>][-n <
01>][-p <PIO模式>][-P <分区数>][-r <01>][-S <时间>][-u <01>][-W <01>][-X
<传输模式>][设备]
补充说明:hdparm可检测,显示与设定IDE或SCSI硬盘的参数。
参  数:
  -a<快取分区>   设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。
  -A<01>   启动或关闭读取文件时的快取功能。
  -c<I/O模式>   设定IDE32位I/O模式。
  -C   检测IDE硬盘的电源管理模式。
  -d<01>   设定磁盘的DMA模式。
  -f   将内存缓冲区的数据写入硬盘,并清楚缓冲区。
  -g   显示硬盘的磁轨,磁头,磁区等参数。
  -h   显示帮助。
  -i   显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。
  -I   直接读取硬盘所提供的硬件规格信息。
  -k<01>   重设硬盘时,保留-dmu参数的设定。
  -K<01>   重设硬盘时,保留-APSWXZ参数的设定。
  -m<磁区数>   设定硬盘多重分区存取的分区数。
  -n<01>   忽略硬盘写入时所发生的错误。
  -p<PIO模式>   设定硬盘的PIO模式。
  -P<磁区数>   设定硬盘内部快取的分区数。
  -q   在执行后续的参数时,不在屏幕上显示任何信息。
  -r<01>   设定硬盘的读写模式。
  -S<时间>   设定硬盘进入省电模式前的等待时间。
  -t   评估硬盘的读取效率。
  -T  评估硬盘快取的读取效率。
  -u<01>   在硬盘存取时,允许其他中断要求同时执行。
  -v   显示硬盘的相关设定。
  -W<01>   设定硬盘的写入快取。
  -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

时间: 2024-10-14 00:05:30

Linux使用dd命令测试硬盘读写速度的相关文章

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

https://blog.51cto.com/moerjinrong/2286323 Linux 中用 dd 命令来测试硬盘读写速度dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. dd 命令通用语法格式如下: dd if=path/to/input_file of=/path/to/output_file bs=block_size count=number_of_blocks 1 命令简介 1.1 主要选项 指定数字的地

linux下测试硬盘读写速度

买了个ssd硬盘,就想着跟普通的机械盘做个比较,因为桌面装的是ubuntu系统,所以就想用linux的命令简单测一下好了 下面是ssd的性能数据: 测试写: [email protected]:~ > time dd if=/dev/zero bs=1024 count=1000000 of=1Gb.file 1000000+0 records in 1000000+0 records out 1024000000 bytes (1.0 GB) copied, 3.78724 s, 270 MB

hdparm命令说明及其测试硬盘读写速度

hdparm命令说明及其测试硬盘读写速度 (2010-08-17 15:45:53) 转载▼ 标签: 杂谈 分类: Linux hdparm -t /dev/sda1功能说明:显示与设定硬盘的参数. 语 法:hdparm [-CfghiIqtTvyYZ] [-a <快取分区>][-A <0或1>][-c <I/O模式>][-d <0或1>][- k <0或1>][-K <0或1>][-m <分区数>][-n <0或1

【转】linux 中dd命令使用详解

原文网址:http://xiaozhuang.blog.51cto.com/4396589/850657 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xiaozhuang.blog.51cto.com/4396589/850657 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 convert and copy a file 使用方式: dd [option] 如果你想要在线看 manual, 可以试试:

Linux中dd命令的用法

dd命令: convert and copy a file 用法: dd?if=/PATH/FROM/SRC?of=/PATH/TO/DEST bs=#:?block?size,?复制单元大小 count=#:复制多少个bs of=file?写到所命名的文件而不是到标准输出 if=file?从所命名文件读取而不是从标准输入 bs=size?指定块大小(既是ibs也是obs) ibs=size?一次读size个byte obs=size?一次写size个byte cbs=size?一次转化size

使用 dd 命令进行硬盘 I/O 性能检测

使用 dd 命令进行硬盘 I/O 性能检测 作者: Vivek Gite 译者: LCTT DongShuaike | 2015-08-28 07:30   评论: 1 收藏: 6 如何使用dd命令测试我的硬盘性能?如何在linux操作系统下检测硬盘的读写速度? 你可以使用以下命令在一个Linux或类Unix操作系统上进行简单的I/O性能测试. dd命令 :它被用来在Linux和类Unix系统下对硬盘设备进行写性能的检测. hparm命令:它用来在基于 Linux 的系统上获取或设置硬盘参数,包

linux dd命令测试U盘读写速度

1. dd命令简述: if=输入文件, of=输出文件, ibs=一次读取字节数, obs=一次写入字节数, bs=设置一次读取写入的字节数, skip=跳过的bs数, count=拷贝的块数 2. 使用/dev/null和/dev/zero 1. 把/dev/null看作"黑洞", 它等价于一个只写文件, 所有写入它的内容都会永远丢失 2. /dev/zero是一个伪文件, 但它实际上产生连续不断的null的流 3. 测试U盘读写速度 ## 切入u盘目录,测试写入速度# dd if=

dd命令测试U盘读写速度

1. dd命令简述: if=输入文件, of=输出文件, ibs=一次读取字节数, obs=一次写入字节数, bs=设置一次读取写入的字节数, skip=跳过的bs数, count=拷贝的块数 2. 使用/dev/null和/dev/zero 1. 把/dev/null看作"黑洞", 它等价于一个只写文件, 所有写入它的内容都会永远丢失 2. /dev/zero是一个伪文件, 但它实际上产生连续不断的null的流 3. 测试U盘读写速度 ## 切入u盘目录,测试写入速度# dd if=

linux下dd命令使用 磁盘性能测试 IO测试

/dev/null ?:在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),可以理解为linux中的黑洞文件,一般用于测试写入. /dev/zero ?:在类UNIX 操作系统中, /dev/zero 是一个特殊的文件,当你读它的时候,它会提供无限的空字符(NULL),可以无限读取.一个典型用法是用它提供的字符流来覆盖信息,另一个常见用法是产生一个特定大小的空白文件.组合命令测试用时##date; dd if=/dev/zer