java定位常见性能
(1)CPU占满
1、使用top查看CPU占满的进程
2、通过执行top -Hp 32805
查看Java线程情况
3、执行 printf '%x' 32826
获取16进制的线程id,用于dump
信息查询,结果为 803a
。最后我们执行jstack 32805 |grep -A 20 803a
来查看下详细的dump
信息。
(2)查看死锁:死锁会导致耗尽线程资源,占用内存,表现就是内存占用升高,CPU不一定会飙升(看场景决定),如果是直接new线程,会导致JVM内存被耗尽,报无法创建线程的错误,这也是体现了使用线程池的好处。
通过ps -ef|grep java
命令找出 Java 进程 pid,执行jstack pid
即可出现java线程堆栈信息