jvm调优工具

jdk工具一般是包装在jdk/lib/tools.jar中,主要的功能代码是在tools类库中,jdk1.5是默认关闭jmx管理功能的,jdk1.6是默认开启的
jps命令: 和linux的ps命令类似,可以列出正在运行的虚拟机进程,类似于ps -ef|grep java 不过只显示了pid 和启动的类名或者jar包,没有时间,用户(linux)等信息
 
 
jstat命令: 用于监视虚拟机各种运行状态信息的命令行工具,是在纯文本情况下去监视虚拟机状态的,不会实时显示,后来有可视化工具去查询,用的少
 
jstat -gcutil <pid> 中:
E--Eden已经用得空间百分比 
S0和S1-- Survivor区域,有两个
O--老年代空间占比
P--永久代空间占比
YGC--Minor GC次数
FGC--Full GC次数
 
jinfo命令: 打印虚拟机启动时候的参数, 可以指定参数名
jinfo [option] <pid>  : jinfo -flag 参数名 <pid>  || jinfo <pid> 打印所有参数
 
jmap 和jhat: 
jmap主要是看堆里面的信息  或者是 生成堆转储快照,以供分析
 
jhat主要是用来分析快照的,资源消耗大,不常使用
 
jstack命令:
生成虚拟机当前时刻线程快照 很重要
jstack -l pid 可以查看当先执行的堆栈信息 如果发现死锁会在头步显示Found one Java-level deadlock
具体到线程信息可以看到当前线程名:wating for ownable synchronizer xxxxx which is held by “线程名”;

posted on 2020-09-21 11:01  jeasGo  阅读(119)  评论(0)    收藏  举报

导航