1.背压情况
kafka 不消费,Flink端背压高,发送端情况满,可以看背压图以及看flink 任务 back pressure 是否high
2.解决问题
thread dump 分析
3.Thread dump 文件关键信息
可以看到对应的行数代码
分析可能出现异常原因:countDownLatch 没有为0
countDownLatch 使用:
4.java 异常分析
head dump:JVM 内存信息 jmap
Thread dump:线程信息 jstack
java程序性能分析之thread dump和heap dump
Flink 背压排查思路总结:
1.在监控图上找到有反压的最下游Task节点,去Job DAG图中找到该Task的直接下游,问题就出在这个Task(监控图位于RCP运维中心——流作业管理——监控,打开Grafana监控图)
2.在监控图的顶部,Task处选择该Task,过滤掉无关信息
3.查看接收端buffer总体利用率的图,观察各subtask之间是否平衡(都100%表示平衡,部分100%部分0%表示不平衡)
4.选择接收端buffer最高的subtask,找到它所在的container id(如一样高,随意选择一个)
5.去Flink UI打开Task Managers页面,找到这个container,点进去,再点Thread Dump
6.在Thread dump页面里搜索:英文引号+Task名称前缀,找到最后一个匹配的线程(只看线程名称中不包含EventThread、2181的,如"Flat Map (43/100)")
6.如调用栈显示不全且不足够用于分析,获取完整的调用栈