Linux测试硬盘性能测试之hdparm、dd

你可以使用以下命令在一个Linux或类Unix操作系统上进行简单的I/O性能测试。

  • dd命令 :它被用来在Linux和类Unix系统下对硬盘设备进行写性能的检测。
  • hparm命令:它用来在基于 Linux 的系统上获取或设置硬盘参数,包括测试读性能以及缓存性能等。

一、hparm        

1.1、安装hdparm工具

[root@localhost ~]# yum install hdparm -y

1.2、显示硬盘的相关信息(可以使用 “lsblk” 来查看磁盘信息 )

[root@localhost ~]# hdparm /dev/sda
 /dev/sda:
 IO_support = 0 (default 16-bit)
 readonly = 0 (off)
 readahead = 256 (on)
 geometry = 19929[柱面数]/255[磁头数]/63[扇区数], sectors = 320173056[总扇区数], start = 0[起始扇区数

1.3、查看读写速度

[root@localhost ~]# hdparm -tT /dev/sda2

/dev/sda2:
 Timing cached reads:   15738 MB in  2.00 seconds = 7876.71 MB/sec
 Timing buffered disk reads: 3578 MB in  3.00 seconds = 1191.20 MB/sec
[root@localhost ~]# 

二、dd命令

使用dd命令来监控硬盘的读写性能:

  • 使用dd命令来测量服务器的吞吐率(写速度) dd if=/dev/zero of=/tmp/test1.img bs=1G count=1 oflag=dsync
  • 使用dd命令测量服务器延迟 dd if=/dev/zero of=/tmp/test2.img bs=512 count=1000 oflag=dsync

语法:

dd if=/dev/input.file  of=/path/to/output.file  bs=block-size  count=number-of-blocks  oflag=dsync
## GNU dd语法 ##
dd if=/dev/zero of=/tmp/test1.img bs=1G count=1 oflag=dsync
##另外一种GNU dd的语法 ##
dd if=/dev/zero of=/tmp/testALT.img bs=1G count=1 conv=fdatasync

参数说明:
  • if=/dev/zero (if=/dev/input.file) :用来设置dd命令读取的输入文件名。
  • of=/tmp/test1.img (of=/path/to/output.file):dd命令将input.file写入的输出文件的名字。
  • bs=1G (bs=block-size) :设置dd命令读取的块的大小。例子中为1个G。
  • count=1 (count=number-of-blocks):dd命令读取的块的个数。
  • oflag=dsync (oflag=dsync) :使用同步I/O。不要省略这个选项。这个选项能够帮助你去除caching的影响,以便呈现给你精准的结果。
  • conv=fdatasyn: 这个选项和oflag=dsync含义一样。

2.1 执行性能压测

测试写入2G数据,数据量越大,测试值应该更精确(测试过程中,需要关注两点,磁盘的读写速度和IO使用率,我们分别使用iopp和iostat工具来观察。)

#写压力测试

[root@localhost ~]# sync; time -p bash -c "(dd if=/dev/zero of=test.dd bs=1M count=2000 oflag=dsync);sync;"
记录了2000+0 的读入
记录了2000+0 的写出
2097152000字节(2.1 GB)已复制,6.95537 秒,302 MB/秒
real 6.96
user 0.00
sys 1.35
[root@localhost ~]#

其中/dev/zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。输出的结果类似(因为一般更长测试时间更准确,所以可以设置count大一些):

2.2 iotop观察数据

具体用法见另外随笔

执行上述命令后,使用iotop观察占用的I/O情况

# 安装软件
yum -y install iotop

#输出正在产生IO的进程
iotop -o -P

2.3 iostat观察数据

具体用法见另外随笔

# 安装工具
yum  -y install sysstat

# 观察
# 查看TPS和吞吐量信息(磁盘读写速度单位为KB)
[root@localhost ~]# iostat -m -x 2 5
-k:以kb为单位统计
-d:显示磁盘状态
-x:显示详细信息
2:统计时间间隔为2秒
5:统计5次

 

posted on 2023-04-20 14:02  wangzy-Zj  阅读(859)  评论(0编辑  收藏  举报