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