Linux 上 Kafka 崩溃(进程退出、OOM、频繁重启等)原因非常多,常见可以归成下面几类。你可以对照看是哪一类。
Kafka 是 Java 进程,常见现象:
java.lang.OutOfMemoryErrordmesg 中有 Out of memory: Kill process (kafka)原因:
-Xmx 设置太小解决:
# 查看是否被 OOM kill
dmesg | grep -i kill
# 调整堆内存(server.properties 或启动脚本)
export KAFKA_HEAP_OPTS="-Xmx4G -Xms4G"
Kafka 依赖:
如果机器内存被其他进程占满,Kafka 性能会骤降甚至假死。
这是 Kafka 崩溃/不可写最常见原因。
现象:
No space left on device检查:
df -h
du -sh /var/lib/kafka/*
解决:
log.retention.hours=72
log.retention.bytes=107374182400
现象:
Kafka 会:
日志特征:
ZooKeeper session expired
Kafka 大量连接 + 文件:
现象:
Too many open files
解决:
ulimit -n 100000
并在 /etc/security/limits.conf 配置。
ulimit -u
比如:
num.partitions 超大num.replica.fetchers 过高log.segment.bytes 太小建议:
journalctl -u kafka
Docker / K8s 中:
# 1. 是否被 OOM
dmesg | grep -i oom
# 2. 磁盘
df -h
# 3. 内存
free -h
# 4. Kafka 日志
tail -n 200 /var/log/kafka/server.log
# 5. 系统日志
journalctl -u kafka -n 200
你可以补充:
我可以帮你直接判断是哪一种崩溃原因。