在 Debian 上调整 Kafka 的内存,通常分为 JVM 堆内存 和 操作系统 / 页缓存 两部分。下面按常见场景说明。
Kafka 不建议给太大堆内存,它主要依赖 操作系统的 Page Cache。
Kafka 启动脚本会读取环境变量 KAFKA_HEAP_OPTS。
export KAFKA_HEAP_OPTS="-Xms2G -Xmx2G"
bin/kafka-server-start.sh config/server.properties
编辑 Kafka 的环境变量配置文件(不同版本位置可能不同):
vim /opt/kafka/bin/kafka-server-start.sh
或(更推荐)在系统中加环境变量:
sudo vim /etc/profile.d/kafka.sh
内容:
export KAFKA_HEAP_OPTS="-Xms2G -Xmx2G"
然后:
source /etc/profile
✅ 生产环境建议
1G~2G4G~6G8G(Kafka 不靠堆)Kafka 的高性能主要靠 Page Cache,而不是 JVM 堆。
free -h
关注:
buff/cache
server.propertieslog.segment.bytes=1073741824 # 1GB
log.retention.hours=168
log.retention.bytes=107374182400
replica.fetch.max.bytes=1048576
export KAFKA_HEAP_OPTS="-Xms4G -Xmx4G -XX:+UseG1GC"
查看当前 GC:
jstat -gc <pid>
sudo swapoff -a
永久关闭:
sudo vim /etc/fstab
# 注释 swap 行
原因:Kafka 对延迟敏感,swap 会造成明显抖动。
sudo sysctl vm.swappiness=1
永久:
echo "vm.swappiness=1" | sudo tee -a /etc/sysctl.conf
ps -ef | grep kafka
jmap -heap <pid>
| 项 | 建议 |
|---|---|
| JVM 堆 | 4G |
| 系统内存 | 16G+ |
| Swap | 关闭 |
| GC | G1 |
| Kafka 依赖 | Page Cache |
如果你愿意,可以告诉我:
我可以帮你给出 一份可直接用的配置方案。