Q:
请教下 kafka的压测。 我想了解压测的过程方法是什么样的。 我应该使用什么压测方法,压测哪些指标、关注哪些压测结果指标,以及能得到什么样的kafka性能处理结论。
A:
压测是一个系统性问题,非常考验对Kafka的深度掌控能力,需要明确压测场景化目标,Case By Case的压测。
实操层面,涉及仿真环境准备,压测工具的选取,压测过程观测,压测结果分析,压测报告呈现
仿真环境准备,需要在Kafka的机型选择、部署架构、系统参数、配置参数、业务数据等多个维度与线上环境保持一致,最难的部分是构造线上多样数据。
压测工具的选取,如果公司内部有压测平台,可以基于平台实现,如果没有可以考虑Kafka自带的测试工具kafka-producer-perf-test.sh来进行测试,producer发送数据生成方式如下:导了一部分线上流量保存到本地文件,随机读取文件中消息发送。
压测过程观测,需要搭建好Kafka集群的观察体系,推荐使用滴滴的LogiKM,方便观测Kafka软件瓶颈点(网络线程池、业务处理线程池的使用率是非常关键的指标),其次配合系统指标监控平台,观测系统指标瓶颈点(CPU、网络是重点关注点)。
压测结果分析,比较理想的情况是系统资源达到瓶颈,比如网卡、CPU、磁盘IOPS;如果系统资源没有瓶颈,一般就是软件资源瓶颈,需要识别软件的资源瓶颈点,