01
概述
kafka集群中的某些broker会随机重启,并且重启没有什么规律。broker重启对于client端使用层面是无感知的,但是在数据一致性、稳定性方面存在风险。broker重启时,连接在这台broker的连接会重连到其他正常的broker,增加集群中其他broker的压力。同时这个broker上的leader partition也会触发切主操作,频繁切主会影响该partition的一致性和可用性。partition的变动也会触发消费端的重平衡,从而影响消费端的稳定性。
通过查看 kafka 服务端日志,并未发现明显的 ERROR 级别日志。通过和运维同学的共同排查,最终定位并解决了这个问题,由于这个问题比较典型,因此通过这篇文章记录问题排查和定位过程。
02
找问题现场
1、分析 java core dump 文件:/tmp/hs_err_pid128144.log ,在文件头中发现以下线索,每次crash都是由OOM触发导致。
2、在 core dump 文件头部和尾部找到内存分配的细节:分配 12288Byte 空间失败,然而物理内存还剩余 461984KBÿ