在 Debian 上 Kafka 占用高(CPU、内存、磁盘 IO 或网络)通常不是 Kafka 本身“有 bug”,而是配置、负载或周边组件导致的。下面按常见原因 → 排查方法 → 解决建议系统说明。
Kafka 是 JVM 应用,默认或误配 KSW 参数会导致吃内存。
检查:
ps aux | grep kafka
看 Xmx、Xms
常见文件:
/etc/kafka/server.properties
/etc/default/kafka
/usr/lib/systemd/system/kafka.service
解决:
KAFKA_HEAP_OPTS="-Xms1G -Xmx2G"
✅ 一般不建议超过物理内存 50%
Linux 会把空闲内存用于文件缓存,这不是泄漏。
查看真实内存:
free -h
cat /proc/meminfo | grep PageTables
如果 buff/cache 很大但 available 也大 → 正常
Kafka 是“高吞吐”设计,CPU 高通常是:
查看:
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe
解决:
查看:
iostat -x 1
top
如果 %iowait 高 → 磁盘慢
解决:
log.flush.*默认:
log.retention.hours=168
查看磁盘:
du -sh /var/lib/kafka/logs/*
解决:
log.retention.hours=24
log.segment.bytes=1073741824
未消费消息会一直保留。
检查:
kafka-topics.sh --bootstrap-server localhost:9092 --describe
解决:
旧版 Kafka 依赖 ZK,ZK 数据大时很吃内存。
检查:
du -sh /var/lib/zookeeper
解决:
Kafka 大量连接 + partition
查看:
cat /proc/sys/fs/file-max
ulimit -n
解决:
echo "kafka soft nofile 100000" >> /etc/security/limits.conf
如果开了 swap,Kafka 会异常慢。
检查:
swapon --show
建议:
vm.swappiness=1top
free -h
iostat -x 1
df -h
du -sh /var/lib/kafka
kafka-consumer-groups.sh --describe
你可以补充:
我可以直接给你针对性的配置示例。