温馨提示×

centos kafka性能如何测试

小樊
34
2025-12-23 11:57:39
栏目: 智能运维

CentOS 上 Kafka 性能测试实操指南

一 工具与准备

  • 使用 Kafka 自带基准工具:
    • 生产者压测:kafka-producer-perf-test.sh
    • 消费者压测:kafka-consumer-perf-test.sh
  • 准备与检查:
    • 已安装并启动 Kafka 集群(建议至少 3 Broker),客户端与 Broker 网络互通。
    • 创建测试 Topic(示例):
      bin/kafka-topics.sh --bootstrap-server broker1:9092,broker2:9092,broker3:9092 --create --topic test_topic_001 --partitions 6 --replication-factor 3
    • 如需鉴权(SASL/Kerberos),准备客户端配置文件(如 kafka-client-properties.conf),并在命令中使用 –producer.config/–consumer.config 指定。

二 快速开始 生产者压测

  • 关键参数说明:
    • –topic:目标主题
    • –num-records:发送总记录数
    • –record-size:单条消息字节数
    • –throughput:限流阈值,-1 表示不限速
    • –producer-props:客户端连接等配置(如 bootstrap.servers)
    • 常用性能开关:acks、batch.size、linger.ms、compression.type
  • 示例命令(不限速,1KB 消息,acks=1,LZ4 压缩,适度批量与等待聚合): /opt/kafka/bin/kafka-producer-perf-test.sh
    –topic test_topic_001
    –num-records 10000000
    –record-size 1024
    –throughput -1
    –producer-props bootstrap.servers=broker1:9092,broker2:9092,broker3:9092
    acks=1 batch.size=65536 linger.ms=10 compression.type=lz4
  • 结果关注:
    • 输出包含:records sent、records/sec、MB/sec、avg latency、max latency(以及分位延迟)。这些指标用于判断吞吐与延迟的权衡。

三 快速开始 消费者压测

  • 关键参数说明:
    • –bootstrap-server:Broker 列表
    • –topic:目标主题
    • –messages:消费总条数
    • –threads:消费者线程数
    • –print-metrics:打印客户端指标
  • 示例命令(单线程,消费 1000 万条): /opt/kafka/bin/kafka-consumer-perf-test.sh
    –bootstrap-server broker1:9092,broker2:9092,broker3:9092
    –topic test_topic_001
    –messages 10000000
    –threads 1
    –print-metrics
  • 结果关注:
    • 输出包含:data.consumed.in.MB、MB.sec、data.consumed.in.nMsg、nMsg.sec、rebalance.time.ms、fetch.time.ms、fetch.MB.sec、fetch.nMsg.sec,用于评估消费吞吐、再均衡开销与抓取效率。

四 测试场景设计与可复现实验

  • 分区与并发:固定消息大小与负载,逐步调整 Topic 分区数Producer/Consumer 并发/线程数,观察吞吐是否随分区近似线性扩展,以及再均衡影响。
  • 消息大小:在 100B–5000B 区间取样,验证“条数吞吐 vs MB 吞吐”的差异与最优区间。
  • 生产者策略:对比 acks=0/1/allbatch.sizelinger.mscompression.type(none/snappy/lz4/gzip) 的组合,找到吞吐与持久性的平衡点。
  • 消费者策略:对比 单线程 vs 多线程、不同 fetch 参数自动/手动提交 对吞吐与滞后(Consumer Lag)的影响。
  • 稳定性与极限:长时间运行(如 ≥1 小时)观察延迟分布、错误率、Broker I/O 与 GC 情况,逐步加压至目标上限。

五 监控指标与瓶颈定位

  • 关键指标清单:
    • 生产者:吞吐量(records/sec、MB/sec)平均/最大/分位延迟、批处理率、压缩率
    • 消费者:吞吐再均衡时间抓取耗时处理时间提交率Consumer Lag
    • Broker:请求处理率请求队列网络吞吐磁盘 IOPS/带宽日志段增长GC 暂停
  • 监控与诊断:
    • 开启 JMX 并使用 JConsole/Kafka Manager 观察 Broker 与 Topic 级别指标,便于定位瓶颈(CPU、网络、磁盘、请求队列等)。
    • 若使用 SASL/Kerberos,确保 –producer.config/–consumer.config 正确加载安全配置,避免认证失败干扰压测结果。

0