问题排查总览 Nginx Ingress 返回 504 Gateway Time-out
1.JVM内存飙高 -> GC线程Full GC / CPU负载飙高 -> 应用程序无法处理外部请求或请求缓慢
案例 2.业务线程耗时计算 -> CPU负载飙高 -> 应用程序无法处理外部请求或请求缓慢
3.业务线程访问数据库 -> MySQL CPU负载飙高 -> 应用程序无法处理外部请求或请求缓慢
1.top -Hp <PID> 按P(即shift + p) 按照CPU使用率从高到低排序
2.jstack <PID> | grep -A10 nid=0x$(printf "%x\n" <LWP>)
2.jstack <PID> | grep -A10 nid=<LWP>
1.jmap -histo:live <PID> | { head -n 2; tail -n +3 | sort -k3 -nr; } | head -20 (会触发一次 Full GC)
2.jmap -histo <PID> | { head -n 2; tail -n +3 | sort -k3 -nr; } | head -20
3.jmap -histo <PID> > ./histo.txt -> grep <关键字> histo.txt | sort -k3 -nr | head -n 10
jmap -heap <PID>
jmap -dump:format=b,file=dump.hprof <PID>
jstat -gc <PID> 500
wget https://t.infuq.com/dl/jstat.sh && bash jstat.sh <PID> 500
jstat -gcutil <PID> 500 10
jar -tvf FlinkListener.jar | grep mysql.*.jar
java -XX:+TraceClassLoading -jar FlinkListener.jar > FlinkListener.log &
1.普罗米修斯查看CPU使用率和负载, 内存(虚拟内存大小 + committed内存大小 + 已使用内存大小), GC, HTTP响应时间, 数据库连接池等信息
2.
数据库实例监控/DAS控制台 3.
ECS主机监控/云监控 4.
报警规则 5.
MQ 6.
类加载顺序 7.
MySQL例行检查常用SQLv8.0