随笔- 2082  评论- 246  文章- 4 

七、jdk工具之jconsole命令(Java Monitoring and Management Console)

目录

一、jdk工具之jps(JVM Process Status Tools)命令使用

二、jdk命令之javah命令(C Header and Stub File Generator)

三、jdk工具之jstack(Java Stack Trace)

四、jdk工具之jstat命令(Java Virtual Machine Statistics Monitoring Tool)

四、jdk工具之jstat命令2(Java Virtual Machine Statistics Monitoring Tool)详解

五、jdk工具之jmap(java memory map)、 mat之四--结合mat对内存泄露的分析

六、jdk工具之jinfo命令(Java Configuration Info)

七、jdk工具之jconsole命令(Java Monitoring and Management Console)

八、jdk工具之JvisualVM、JvisualVM之二--Java程序性能分析工具Java VisualVM

九、jdk工具之jhat命令(Java Heap Analyse Tool)

十、jdk工具之Jdb命令(The Java Debugger)

十一、jdk命令之Jstatd命令(Java Statistics Monitoring Daemon)

十一、jdk命令之Jstatd命令(Java Statistics Monitoring Daemon)

十二、jdk工具之jcmd介绍(堆转储、堆分析、获取系统信息、查看堆外内存)

十三、jdk命令之Java内存之本地内存分析神器:NMT 和 pmap

 

jconsole:一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强。命令行里打 jconsole,选则进程就可以了。

需要注意的就是在运行jconsole之前,必须要先设置环境变量DISPLAY,否则会报错误,Linux下设置环境变量如下:

export DISPLAY=:0.0

 [root@localhost bin]# jconsole

那我在window机器上的结果是:

上两个图看一下:

可以这里选择查看本地进程的状况,还是远程进程的状况。

通过这张图可以看到内存、线程、类及CPU使用的一些情况。

内存情况:

VM概要:

 

 

示例1

package mat;
public class Deadlock implements Runnable{
    private int a;
    private int b;
    public Deadlock(int a, int b) {
       super();
       this.a = a;
       this.b = b;
    }
    @Override
    public void run() {
       synchronized (Integer.valueOf(a)) {
           synchronized (Integer.valueOf(b)) {
              System.out.println("a+b="+(a+b));
           }
       }
    }
    public static void main(String[] args) {
       for(int i = 0; i < 1000; ++i){
           new Thread(new Deadlock(1, 2)).start();
           new Thread(new Deadlock(2, 1)).start();
       }
    }
}

用jconsole连接上后,看线程页

看死锁信息:

 

用jvisualVM看上面的示例

 

posted on 2012-11-02 14:25  duanxz  阅读(1542)  评论(0编辑  收藏