一、简介
由于最近压测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%说明设备出现了瓶颈。
网友评论