线上cpu 网络 内存 jvm出现异常排查思路

it2024-03-19  71

1.查询对应进程 pid  jps 或者ps -ef |grep java

2.查询该pid对应的内存分配是否不合适 jmap -heap pid

3.找到最消耗内存的对象 C B I S jmap -histo:live pid | more

4.查询网络连接数 netstat 或者 ll /proc/pid/task |wc -l

5.定位cpu问题 top -c 查看运行信息,找出最消耗cpu的进程

6.查询最消耗cpu进程的线程 6.1. top -Hp pid, 获取到最大cpu占用的线程id 6.2 . 将改线程id转换为16进制  printf "%0x\n" thread_id 6.3. 查看该线程堆栈信息   jstack pid |grep '0x{thread_id}' -C5

7.监控heap和jvm垃圾回收,主要是gc的情况 jstat -gcutil pid

8.查看线上堆大小以及gc收集器 java -XX:+PrintCommadnLineFlags -version  

最新回复(0)