笔者今天学习了一下jvm中的监控指令,顺便就记录了下,如有不足或不对之处希望各位看官老爷多多指点。
目录
一、jps指令
通过jps指令可以查找出与Java相关的进程名字和进程id,如下图
二、jmap
1、jmap -histo PID指令
通过这个指令可以查找这个PID进程中的所有java类的使用情况,如下图
2、jmap -heap PID指令
通过该指令可以查看当前进程中jvm堆的年龄代分区情况和各分区的使用率,如下图
三、jstack
1、jstack PID指令
1、可以查看当前进程id中所有线程的信息;
2、找出死锁线程,指出死锁位置;
3、结合linux中的top指令可以精确找出CPU使用较高的线程所对应的代码位置。
四、jinfo
该指令是用来查看正在运行的java应用程序的扩展参数
1、jinfo -flags PID指令
该指令是用来查看jvm参数的,如下图
2、jinfo -sysprops PID指令
该指令是用来查看java系统参数的,如下图
五、jstat
该指令可以查看堆内存各部分的使用量,以及加载类的数量
1、jstat -gc PID 指令
该指令可以评估内存使用以及GC压力的整体情况 ,如下图
2、jstat -gc PID 1000 10 指令
该指令的意思是对jstat -gc PID这个指令每隔一秒执行一次,总共执行10次;(1000指的是1s,10指的是执行次数)如下图
六、jvisualvm指令
该指令是jvm提供的一个可视化界面的监控工具,该工具集成上述底层的指令操作,将上述指令的数据打印到了可视化界面中。如下图