kafka 单机集群压力测试

kafka 单机集群压力测试,第1张

由于kafka吞吐量特别大,所以先考虑集群服务器的自身瓶颈,因为现在测试的是单机所以只会涉及到磁盘IO以及cpu,但是对于kafka来说对于cpu的使用还是可以忽略不计的,

1.1磁盘IO写入瓶颈

使用以下命令测试磁盘IO的写入瓶颈

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

说明: 在当前目录下创建一个test.dd的文件,写入20000个1M的数据

磁盘写入IO的结果

可以看到平均就是187MB/s

1.2 使用iostat命令监测磁盘io情况

使用命令

# iostat -x 1

说明: 扩展查看io性能,每秒刷新一次

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

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

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

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

如图现在这台机器的磁盘IO极限值为187MB/s

1.3 单机版测试kafka性能

因为测试的次数比较多,也没有去找kafka中数据存储设置,所以就使用docker部署单机版的kafka (因为测试的数据比较多,也就多次的删除了容器,重新启动镜像)

新建目录:

mkdir /usr/local/kafka_test

dockerfile

run.sh

sources.list

目录结构如下:

生成镜像

docker build -t kafka_test /usr/local/kafka_test

启动kafka

docker run -d -it kafka_test

测试结果

从表格中可以看出来五个分区就已经是极限了

结果分析

这中间并没有设置条数/每秒,所以就是按照kafka 就会按照量级自动的吞入数据,如果我们需要对于消息的即时性做控制,还需要再重新测试一下,按照业务的延迟找到最合适的数量(单机版,然后再部署集群,测试适合的数量)

集群测试:

部署就不再这里说明了

本次测试的是三台机器集群

测试结果:

之后还测试了9个分区的topic 因为空间不足所以就没有继续测下去,但是看部分数据还超过了500MB/s还是有上升空间的

1.3 磁盘IO 读取瓶颈

使用一下命令测试磁盘IO的读取瓶颈

hdparm -tT --direct /dev/vda

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

一般情况下,我们可能想测试一下服务器上的文件(用户上传的或者后台写入的)是否可以被外网访问到,以进一步测试文件下载等功能。

我原本想尝试从服务器的任意目录访问文件,但是经过数次的尝试,网上教的通过修改Tomcat路径映射和自定义XML来进行文件映射都不能成功访问到目标文件。

最后查到,把文件放在Tomcat的ROOT目录下,就可以用服务器域名+“/”+“文件名(带后缀)”直接访问到文件,亲测成功,。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/659445.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-24
下一篇2023-07-24

发表评论

登录后才能评论

评论列表(0条)

    保存