温馨提示×

ubuntu kafka配置如何优

小樊
42
2026-09-05 17:05:19
栏目: 智能运维

下面从 系统层、Kafka 本身配置、生产/消费端、运维监控 几个维度,给你一套在 Ubuntu 上优化 Kafka 的实用建议(以 Kafka 3.x + JVM 为例,适用于大多数生产/准生产环境)。


一、系统层优化(Ubuntu)

1. 磁盘与文件系统

Kafka 是磁盘 IO 密集型系统。

  • 磁盘
    • 使用 SSD / NVMe(高吞吐场景)
    • 多块盘做 JBOD(Kafka 原生支持,不推荐 RAID5)
  • 挂载参数
mount -o noatime,nodiratime /dev/sdX /kafka
  • 文件系统
    • 推荐 ext4xfs(xfs 更稳)

2. 文件描述符

# /etc/security/limits.conf
kafka soft nofile 100000
kafka hard nofile 100000

3. 内核参数(/etc/sysctl.conf)

vm.swappiness=1
net.core.somaxconn=4096
net.ipv4.tcp_max_syn_backlog=8192
sysctl -p

二、Kafka Broker 关键配置

配置文件:config/server.properties

1. 基础性能配置

num.network.threads=8
num.io.threads=16
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600

2. 日志与刷盘

log.dirs=/kafka/logs1,/kafka/logs2

# 不依赖操作系统刷盘
log.flush.interval.messages=10000
log.flush.interval.ms=1000

# 段文件大小
log.segment.bytes=1073741824

3. 副本与可靠性

default.replication.factor=3
min.insync.replicas=2
unclean.leader.election.enable=false

4. 压缩(推荐)

compression.type=snappy

三、JVM 优化(非常重要)

1. 堆内存

  • 不要太大(GC 压力)
  • 推荐:
# 8~16GB 内存机器
KAFKA_HEAP_OPTS="-Xms4g -Xmx4g"

2. GC(推荐 G1)

KAFKA_JVM_PERFORMANCE_OPTS="
-Xms4g -Xmx4g
-XX:+UseG1GC
-XX:MaxGCPauseMillis=20
"

四、生产端与消费端优化

Producer

acks=all
retries=3
batch.size=16384
linger.ms=5
compression.type=snappy

Consumer

fetch.min.bytes=1024
fetch.max.wait.ms=100
max.poll.records=500

五、监控与运维

1. 必装组件

  • JMX Exporter + Prometheus + Grafana
  • Kafka Manager / CMAK
  • Burrow(消费延迟)

2. 关键指标

  • Under Replicated Partitions
  • Request Queue Size
  • Consumer Lag
  • Disk IO Util

六、常见误区

❌ 使用 RAID5
❌ 堆内存设太大(>8G)
❌ 所有 topic 用同分区数
❌ 忽略 consumer lag


七、示例:单机压测推荐起点

num.partitions=6
default.replication.factor=1
log.segment.bytes=1G

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

  • Kafka 版本
  • 单机还是集群
  • 消息大小 / QPS
  • 是否重视延迟还是吞吐

我可以直接帮你 给出一份可直接用的 server.properties

0