Flink故障排查

参考
cpu问题 https://www.cnblogs.com/wuchanming/p/7766994.html
https://blog.csdn.net/m0_46449152/article/details/111936485
内存问题 https://www.jianshu.com/p/15637724ef16

Flink故障排查_第1张图片
Flink故障排查_第2张图片
1.查看 Task Heap 是否经常达到 100%
2.查看 老年代 Full GC 发生次数

解决方法

  1. 内存问题:
    排查: https://www.jianshu.com/p/15637724ef16
    VM options 加上 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/flinkgc.dump
    打开 jvisualvm 将 flinkgc.dump 文件导入
    打开 堆转储上的线程 找到 对应类 对应行
    在这里插入图片描述
    右边查找最大的对象
    在这里插入图片描述
    解决方法:
    合理调整堆的初始值、最大值、以及堆中的新生代、老年代比例等。详情见:https://www.jianshu.com/p/dcb8776c0e9c
    a、内存溢出:加内存
    b、内存泄露:加内存、减少变量的使用范围以达到尽快释放回收
    c、可以使用 G1 垃圾回收器 -yD env.java.opts="-XX:+UseG1GC"

  2. cpu 问题排查
    找到 container所在的服务器
    ps -ef | grep container_e08_1632652775683_0473_01_000025 找到 进程 id 22226
    jstack 22226 > 0025.jstack 查看当前java进程的堆栈状态
    top -Hp 22226 查看进程中线程占用情况
    Flink故障排查_第3张图片
    可以看到 22333 这个线程占用 cpu较高 转为 16进制 为 573d

less 0025.jstack 搜素 / 573d 找到相应故障方法
(或者直接查看 jstack 22226 | grep 573d -A60)
在这里插入图片描述

你可能感兴趣的:(flink,flink,big,data)