温馨提示×

debian kafka怎么测吞吐

小樊
44
2026-09-22 02:38:18
栏目: 智能运维

在 Debian 上测 Kafka 吞吐,通常不用自己写代码,直接用 Kafka 自带的压测脚本最方便。下面按「最常见做法 → 进阶用法」给你说明。


一、环境前提(Debian)

# 假设你已经装好:
# - JDK(8/11/17 都行)
# - Kafka(官方 tgz 包或 apt 装的 kafka)

cd /opt/kafka   # 或 /usr/share/kafka

Kafka 自带两个关键脚本:

  • bin/kafka-producer-perf-test.sh → 测生产吞吐
  • bin/kafka-consumer-perf-test.sh → 测消费吞吐

二、先创建一个测试 Topic

bin/kafka-topics.sh \
  --create \
  --topic perf-test \
  --partitions 6 \
  --replication-factor 1 \
  --bootstrap-server localhost:9092

⚠️ 吞吐和 partition 数强相关,建议 ≥ broker 数


三、测【生产者吞吐】(最常用)

bin/kafka-producer-perf-test.sh \
  --topic perf-test \
  --num-records 1000000 \
  --record-size 1024 \
  --throughput -1 \
  --producer-props bootstrap.servers=localhost:9092

参数说明

参数 含义
--num-records 发送多少条
--record-size 每条大小(字节)
--throughput -1 不限速(压满)
acks=1 / all 可加在 producer-props

输出示例

1000000 records sent, 250000 records/sec (244.14 MB/sec)

MB/sec 就是你要的吞吐


四、测【消费者吞吐】

bin/kafka-consumer-perf-test.sh \
  --topic perf-test \
  --bootstrap-server localhost:9092 \
  --messages 1000000 \
  --reporting-interval 1000

输出示例

MB.rate=220.5

五、调优 / 对比测试常用参数

生产者

--producer-props \
  compression.type=lz4 \
  batch.size=65536 \
  linger.ms=5 \
  acks=1

消费者

--consumer.config client.properties

六、多 broker / 多机压测(真实场景)

  • 生产者、消费者分开机器
  • broker 单独机器
  • 网络用万兆(1Gbps 很容易成为瓶颈)

七、常见吞吐瓶颈(Debian 上)

  1. 磁盘
    iostat -x 1
    
  2. 网络
    sar -n DEV 1
    
  3. CPU
    top / htop
    
  4. PageCache
    • Kafka 极度依赖 OS cache
    • 别让别的进程抢内存

八、如果你想“更专业”

  • kafkacatapt install kafkacat
  • 用 JMeter + Kafka 插件
  • troposphere / kafka-go 自己写压测

如果你愿意,可以告诉我:

  • Kafka 版本
  • 单机还是集群
  • 想要测 MB/s 还是 条/s
  • 消息大小(1KB?10KB?)

我可以直接给你一套可复制的命令

0