查找 tomcat 线程
可以通过两种方式找:
jps
一般Bootstrap都是tomcat的
ps -ef |grep tomcat
jstack dump 出线程
1 | jstack 23524 > jstack.txt |
查看 tomcat 内部线程
1 | top -H -p 23524 |
(shift+p 按 cpu 排序,shift+m 按内存排序)
将PID换算成16进制,然后在jstack.txt查找nid=0x换算后的数
1 | cat jstack.txt | grep 'nid=0x5be9' -B 5 -A 40 |
发现频繁的GC,推测是不是数据库在频繁的开关导致,因此检查 tomcat jndi是否没配置数据库连接池参数
加上连接池参数
参考
jstack分析cpu负载过高原因:
https://blog.csdn.net/u010248330/article/details/80080605
jstack: Java占用高CPU分析之- GC Task Thread: