在 Ubuntu 上调整 Kafka 参数,通常分为 Broker 参数、Producer 参数、Consumer 参数 和 JVM 参数。下面按常见场景给你一个实用清单。
cd /opt/kafka/config # 或你自己的安装目录
vim server.properties
broker.id=1
listeners=PLAINTEXT://:9092
log.dirs=/data/kafka-logs
num.partitions=3
# 副本相关
default.replication.factor=3
min.insync.replicas=2
# 网络 & IO
num.network.threads=8
num.io.threads=16
# 日志刷盘
log.flush.interval.messages=10000
log.flush.interval.ms=1000
# 日志保留
log.retention.hours=168
log.segment.bytes=1073741824
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
✅ 修改后重启:
bin/kafka-server-stop.sh
bin/kafka-server-start.sh -daemon config/server.properties
bin/kafka-console-producer.sh \
--bootstrap-server localhost:9092 \
--topic test \
--producer-property acks=all \
--producer-property batch.size=32768 \
--producer-property linger.ms=10
props.put("acks", "all");
props.put("compression.type", "lz4");
props.put("batch.size", 32768);
props.put("linger.ms", 10);
✅ 想高吞吐:
acks=1compression.type=lz4batch.size✅ 想高可靠:
acks=allretries=Integer.MAX_VALUEbin/kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic test \
--consumer-property fetch.min.bytes=1024 \
--consumer-property max.poll.records=500
props.put("enable.auto.commit", "false");
props.put("auto.offset.reset", "earliest");
props.put("fetch.min.bytes", 1024);
props.put("max.poll.records", 500);
vim bin/kafka-server-start.sh
找到:
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
生产环境建议:
export KAFKA_HEAP_OPTS="-Xms4G -Xmx4G"
export KAFKA_JVM_PERFORMANCE_OPTS="-XX:+UseG1GC -XX:MaxGCPauseMillis=20"
ulimit -n
修改:
sudo vim /etc/security/limits.conf
* soft nofile 100000
* hard nofile 100000
sudo sysctl vm.swappiness=1
sudo swapoff -a
| 场景 | 建议 |
|---|---|
| 高吞吐 | 增大 batch.size、linger.ms、num.io.threads |
| 低延迟 | 减小 linger.ms、acks=1 |
| 高可靠 | acks=all、min.insync.replicas≥2 |
| 磁盘压力大 | 增加 log.dirs、使用 SSD |
| OOM | 调大 KAFKA_HEAP_OPTS |
bin/kafka-configs.sh \
--bootstrap-server localhost:9092 \
--entity-type brokers \
--entity-name 1 \
--describe
如果你愿意,可以告诉我:
我可以 直接给你一套适合你环境的 Kafka 参数模板 ✅