Kafka内存配置主要涉及JVM堆内存和Broker缓冲区内存,具体调整方式如下:
JVM堆内存设置
修改kafka-server-start.sh
中KAFKA_HEAP_OPTS
,设置初始堆(-Xms
)和最大堆(-Xmx
)为相同值,避免动态调整开销,建议不超过物理内存的50%。例如:
export KAFKA_HEAP_OPTS="-Xms8G -Xmx8G -XX:+UseG1GC" # 使用G1垃圾回收器
-XX:MaxGCPauseMillis
(控制GC暂停时间,默认100ms,生产环境建议20-50ms)。Broker缓冲区内存(buffer.memory)
在server.properties
中设置,控制消息缓冲区大小,建议为可用内存的50%-70%,避免挤压页缓存。例如:
buffer.memory=16GB # 32GB内存服务器可设为16GB-21GB
其他关键参数
log.retention.hours
(保留时间)、log.segment.bytes
(日志段大小),影响磁盘占用和内存间接使用。batch.size
(批量大小,增大可提升吞吐但增加延迟)、fetch.min.bytes
(消费者单次拉取最小字节数,减少网络往返)。注意事项: