CPU占比持续高
1.分析哪个线程耗用CPU(看程序哪块逻辑消耗CPU)
找到Java进程pid:jcmd
监控Java进程状态:java -jar opt/arthas/arthas-boot.jar 7
进入后执行thread命令 查看TOP n 线程 ,返回的第一列未线程ID
/# thread
执行thread线程ID 查看线程堆栈,了解该线程正在执行什么代码,进而得知程序是在干什么比较耗用CPU
/# thread ID
CPU占比比较高时大多数情况都是GC线程耗用CPU,这时一般是程序有内存泄露问题,需要分析GC情况,若不是GC线程耗CPU,则可以根据线程堆栈了解程序时干什么事情很消耗CPU,可让研发结合实际运行情况分析原因(可在arthas中执行stop命令退出arthas命令)
2.分析内存GC问题(在K8s容器中执行的,非arthas里面)
/# jstat -gcutil 7 5000
原文:https://www.cnblogs.com/DataoJava/p/14858441.html