测试场景:
4个kafka。 1个或者3个zookeeper。kafka 的replicator=3. Partition=16.
现象:大概跑了5分钟后,发现Latency飙升。 kafka01-kafka03 的Minor GC大幅上升,Kafka04基本没有MinorGC。而且kafka04的CPU使用率非常低。
现象分析:
- kafka01-03和 kafka04的配置有什么地方不同?
查看了一下,配置上没有问题,server的系统时间也一致。 - 查看irqbalance 服务 RPS/RFS 设置。确实不一样。但是调整为一致后仍然存在问题。
Root cause:
kafka04 broker因为网络问题与zookeeper通讯发生timeout。kafka04 作为leader的4个分区被重新分配。
Real root cause:
Kafka04不是自己book的机器,是别人在用的server。因为没注意到这一点。导致kafka04的网络异常。
总结:
1. 出现问题时,把调查问题的范围分割。 比如原来是end to end 出现了问题。先使用kafka提供的performance test 工具排查kafka 本身的问题。
2. 看log。之前没仔细分析kafka的log。应该可以从log中发现kafka04 fail。