你可以使用以下命令在一个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命令
使用time命令和dd命令可以简单测试硬盘的写速率,
这不是一个专业的测试工具,不过如果对于测试结果的要求不是很苛刻的话,平时可以使用来对磁盘的读写速度作一个简单的评估.
2.1 执行性能压测
测试写入20G数据,数据量越大,测试值应该更精确(测试过程中,需要关注两点,磁盘的读写速度和IO使用率,我们分别使用iopp和iostat工具来观察。)
time dd if=/dev/zero of=test.dd bs=1M count=20000 解释:在当前目录下创建一个test的文件,写入20000个1M的数据。 但我感觉这样的测试是不是没有把内容写到磁盘,而只是写到内存了,于是我在后面加上了sync sync; time -p bash -c "(dd if=/dev/zero of=test.dd bs=1G count=20);sync;" 其中/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次
标签:dd,dev,hdparm,测试,磁盘,硬盘 From: https://www.cnblogs.com/wangzy-Zj/p/17336599.html