JDK自带的性能监控工具
一、命令
1、jps
查看当前运行的所有java进程
2、jinfo
1)查看jvm启动参数
2)修改jvm运行参数(启动参数有部分支持运行时修改)
3、jmap
查看内存中类的加载状态,内存的参数,内存的各个区状态,dump内存;
1 | jmap -histo pid |
4、jhat
网页方式打开分析jmap导出的dump文件;
5、jstack
查看线程栈,常用于定位线程死锁,CPU使用率高;
NOTE:为什么cpu100%仍能响应jstack?
CPU时分时调度,接收jstack命令的线程会被分配时间片执行。
6、jstat
实时监控运行时内存各个区的内存使用状态,常用于JVM内存调优
二、案例
1、CPU 100%
1)top 找到CPU高的进程,假设为pid
2)top -H -p pid 找到进程中CPU使用高的线程,假设为tid
3)jstack pid 打印线程栈,从中找出tid的线程栈,定位问题代码