测试磁盘IO瓶颈

一、简介

  由于最近压测kafka的吞吐量,发现优化kafka的时候并没有提升吞吐量。所以怀疑是服务器本身的瓶颈。于是做了服务器的IO瓶颈测试。
  硬盘位正常SATA磁盘,做的raid1.

二、测试

1、 测试磁盘写入IO瓶颈

(1)使用以下命令
# sync;time -p bash -c "(dd if=/dev/zero of=test bs=1M count=20000)"

解释:在当前目录下创建一个test的文件,写入20000个1M的数据。

(2)同时使用iostat命令监测磁盘io情况。

使用命令

# iostat -x 1

解释:扩展查看io性能,每1秒钟刷新一次。

注意:如果没有iostat。请执行yum install sysstat –y命令进行安装iostat命令

(3)输出结果

关注wkB/s和%util两个参数

wkB/s:每秒写入设备的数据量(单位:KB)

%util:消耗在I/O请求中的CPU时间百分比(设备带宽利用率)。如果该值接近100%说明设备出现了瓶颈。

# sync;time -p bash -c "(dd if=/dev/zero of=test.dd bs=1M count=20000)"

记录了20000+0 的读入

记录了20000+0 的写出

20971520000字节(21 GB)已复制,221.314 秒,94.8 MB/秒

real 221.67

user 0.01

sys 21.20

磁盘写入IO为94.8 MB/秒

2、 测试磁盘IO读取瓶颈

(1)使用以下命令
# hdparm -tT --direct /dev/sda

解释:hdparm命令是显示与设定硬盘的参数。-t参数为评估硬盘的读取效率(不经过磁盘cache)。-T参数为评估硬盘的读取效率(经过磁盘cache)

注意:如果没有hdparm命令可以直接yum –y install hdparm即可

(2)使用iostat命令监测磁盘io情况。

使用命令

# iostat -x 1
(3)输出结果
# hdparm -tT --direct /dev/sda

/dev/sda:

 Timing O_DIRECT cached reads: 326 MB in 2.00 seconds = 162.83 MB/sec

 Timing O_DIRECT disk reads: 322 MB in 3.01 seconds = 106.88 MB/sec

解释:经过磁盘cache的磁盘读取为162.83 MB/sec

未经过磁盘cache的磁盘读取为106.88 MB/sec

3、 直接测试IO是否到达瓶颈

可以在大量写入数据或者大量读取数据的时候直接使用iostat命令去查看磁盘IO是否达到瓶颈。在大量读写操作时直接使用iostat –x 1查看

关注wkB/s和%util两个参数
wkB/s:每秒写入设备的数据量(单位:KB)
%util:消耗在I/O请求中的CPU时间百分比(设备带宽利用率)。如果该值接近100%说明设备出现了瓶颈。

你可能感兴趣的:(测试磁盘IO瓶颈)