案例一:cpu占用过多
定位:
1、先用top 定位那个进程对cpu的占用过高
2、ps H -eo pid,tid,%cpu | grep 进程id (用ps命令进一步定位那个线程引起的cpu占用过高)
3、jstack 进程id
可以根据线程id 找到有问题的线程,进一步定位到问题代码的原码行还
案例二:和长时间都没有计算出结果。
同样使用jstack
案例三:垃圾回收之后,依然占用很大的内存。
jps
查看当前系统中有哪些java进程
jmap
查看对内存的占用情况
jmap -heap 进程id
jconsole
图形界面的,多功能检测工具,可以连续检测。
jvisualvm: 用来查看那个内存的占用的比较大。