温馨提示×

ubuntu kafka怎么调参数

小樊
36
2026-08-17 18:34:21
栏目: 智能运维

Ubuntu 上调整 Kafka 参数,通常分为 Broker 参数Producer 参数Consumer 参数JVM 参数。下面按常见场景给你一个实用清单。


一、Kafka Broker 参数(最重要)

1️⃣ 配置文件位置

cd /opt/kafka/config        # 或你自己的安装目录
vim server.properties

2️⃣ 常用核心参数(生产环境建议)

基础配置

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

二、Producer 参数(生产端)

1️⃣ 命令行方式

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

2️⃣ Java 常见参数

props.put("acks", "all");
props.put("compression.type", "lz4");
props.put("batch.size", 32768);
props.put("linger.ms", 10);

✅ 想高吞吐:

  • acks=1
  • compression.type=lz4
  • 增大 batch.size

✅ 想高可靠:

  • acks=all
  • retries=Integer.MAX_VALUE

三、Consumer 参数(消费端)

1️⃣ 命令行

bin/kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 \
  --topic test \
  --consumer-property fetch.min.bytes=1024 \
  --consumer-property max.poll.records=500

2️⃣ Java 常用参数

props.put("enable.auto.commit", "false");
props.put("auto.offset.reset", "earliest");
props.put("fetch.min.bytes", 1024);
props.put("max.poll.records", 500);

四、JVM 参数(Ubuntu 上非常重要)

1️⃣ 修改启动脚本

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"

五、系统级参数(Ubuntu 必调)

1️⃣ 文件句柄

ulimit -n

修改:

sudo vim /etc/security/limits.conf
* soft nofile 100000
* hard nofile 100000

2️⃣ vm.swappiness

sudo sysctl vm.swappiness=1

3️⃣ 禁用 swap(推荐)

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 版本
  • 单机还是集群
  • 主要用途(日志 / 消息 / 流处理)
  • 机器配置(CPU / 内存 / 磁盘)

我可以 直接给你一套适合你环境的 Kafka 参数模板

0