Kafka内存泄漏问题求助:GC释放内存持续缩减
Kafka集群G1GC内存泄漏问题求助
我们的3节点Kafka集群运行过程中,发现Garbage Collector(GC)释放的内存越来越少,疑似出现内存泄漏。
集群配置
POD_NAME: metadata.name POD_NAMESPACE: metadata.namespace KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3 KAFKA_DEFAULT_REPLICATION_FACTOR: 3 KAFKA_HEAP_OPTS: -Xmx3g -Xms1g KAFKA_ZOOKEEPER_CONNECT: **.*.**.***:2181 KAFKA_LOG_DIRS: /opt/kafka/data/logs KAFKA_CONFLUENT_SUPPORT_METRICS_ENABLE: false KAFKA_JMX_PORT: 5555 KAFKA_JMX_OPTS: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false KAFKA_JVM_PERFORMANCE_OPTS: -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=20 -XX:G1HeapRegionSize=8m -XX:+ExplicitGCInvokesConcurrent -XX:MaxInlineLevel=15 -XX:G1MixedGCCountTarget=4 -XX:G1ReservePercent=20 -XX:MaxTenuringThreshold=5 -XX:TargetSurvivorRatio=80 -Djava.awt.headless=true KAFKA_JMX_HOSTNAME: status.podIP KAFKA_MESSAGE_MAX_BYTES: 15728640 KAFKA_MAX_REQUEST_SIZE: 15728640 KAFKA_REPLICA_FETCH_MAX_BYTES: 15728640 KAFKA_INTER_BROKER_PROTOCOL_VERSION: 2.8-IV1 KAFKA_LOG_MESSAGE_FORMAT_VERSION: 2.8-IV1 KAFKA_LOG_FLUSH_INTERVAL_MS: 10000 KAFKA_LOG_FLUSH_INTERVAL_MESSAGES: 20000
当前环境
- JDK版本:11
- Kafka镜像:confluentinc/cp-kafka:6.2.13
- Pod内存配置:请求4Gi,限制4Gi
已尝试的排查/调整操作
- 调整G1GC核心参数:
MaxGCPauseMillis、InitiatingHeapOccupancyPercent、G1HeapRegionSize,无明显改善 - 配置Kafka日志刷盘参数:
KAFKA_LOG_FLUSH_INTERVAL_MS、KAFKA_LOG_FLUSH_INTERVAL_MESSAGES - 优化主题清理策略:
- 针对采用删除策略的主题,修改
retention.ms等清理参数 - 针对采用压缩策略的主题,调整
max.compaction.lag.ms、min.cleanable.dirty.ratio、delete.retention.ms参数
- 针对采用删除策略的主题,修改
诉求
希望GC能恢复到稳定有效的内存回收状态,彻底解决当前内存泄漏导致的内存无法有效释放问题,恳请提供可行的解决方案。
内容的提问来源于stack exchange,提问作者Roman
相关产品推荐
相关产品推荐

