-
CPU占用过高排查流程
- 利用 top 命令可以查出占 CPU 最高的的进程pid ,如果pid为 28476
- 然后查看该进程下占用最高的线程id【top -Hp 28476】
- 假设占用率最高的线程 ID 为 28486,将其转换为 16 进制形式 (因为 java native 线程以 16 进制形式输出) 【printf '%x\n' 28486】
- 利用 jstack 打印出 java 线程调用栈信息【jstack 9876 | grep '0x1af4' -A 50 --color】,这样就可以更好定位问题
- 利用 top 命令可以查出占 CPU 最高的的进程pid ,如果pid为 28476
-
内存占用过高排查流程
- 查找进程id: 【top -d 2 -c】
- 查看JVM堆内存分配情况:jmap -heap pid
- 查看占用内存比较多的对象 jmap -histo pid | head -n 100
- 查看占用内存比较多的存活对象 jmap -histo:live pid | head -n 100