JVM学习总结二

4. jmap

这个是用来查看jvm当前的heap dump的。可以看出当前jvm中各种对象的数量,所占空间等等。

尤其值得一提的是这个命令可以到处一份binary heap dumpbin文件,这个文件能够直接用

Eclipse Memory Anayliser来分析,并找出潜在的内存泄漏的地方。

描述 :输出给定 java 进程所有的内存使用信息。 

使用: 

    jmap [ option ] pid 

    jmap [ option ] executable core 

    jmap [ option ] [server-id@]remote-hostname-or-IP 

 

参数如下:
-heap:打印jvm heap的情况
-histo:打印jvm heap的直方图。其输出信息包括类名,对象数量,对象占用大小。
-histo:live 同上,但是只答应存活对象的情况
-permstat:打印permanent generation heap情况

<no option> 

没有可选项时,会输出所有共享的对象映射。 

开始地址,映射大小,全路径。 

直接 jmap pid得到如下结果: 

0x08048000     46K  /work/ProgramFiles/jdk1.6.0_14/bin/java 

0xb6763000     74K  /work/ProgramFiles/jdk1.6.0_14/jre/lib/i386/libzip.so 

0xb6774000     41K  /lib/tls/i686/cmov/libnss_files-2.9.so 

0xb6780000     37K  /lib/tls/i686/cmov/libnss_nis-2.9.so 

0xb678b000     29K  /lib/tls/i686/cmov/libnss_compat-2.9.so 

是加载的文件的信息

jmap -heap pid : 

查看堆的配置和大当前各个区块的使用情况,如伊甸区、老年代,永久代。可以用此来判断内存目前的使用情况以及垃圾回收情况: 

jmap -histo 选项 

内存使用的柱状图,包含每个类,对象使用的内存大小。 VM 内部的类名以 前缀开头。 

jmap -permstat 选项 

输出所有类装载器在堆里产生的对象 

包括每个装载器的名字,活跃,地址,父装载器,和其总共加载的类大小。 

jmap -permstat pid

-------------------

5. netstat

通过这个命令可以看到linux系统当前在各个端口的链接状态,比如查看数据库连接数等等

6. jinfo

描述:输出给定 java 进程所有的配置信息。包括 java 系统属性和 jvm 命令行标记等。 

用法: 

jinfo [ option ] pid 

jinfo [ option ] executable core 

jinfo [ option ] [server-id@]remote-hostname-or-IP 

例子: 

jinfo pid 

这个命令包含了 JDK 和 JVM 运行起来时的一些属性。

7. jstatd

启动jvm监控服务。它是一个基于rmi的应用,向远程机器提供本机jvm应用程序的信息。默认端口1099

实例:jstatd -J-Djava.security.policy=my.policy

my.policy文件需要自己建立,内如如下:

grant codebase "file:$JAVA_HOME/lib/tools.jar" {

 permission java.security.AllPermission;

};

这是安全策略文件,因为jdkjvm做了jaas的安全检测,所以我们必须设置一些策略,使得jstatd被允许作网络操作

8. jps

列出所有的jvm实例

实例:

jps

列出本机所有的jvm实例

jps 192.168.0.77

列出远程服务器192.168.0.77机器所有的jvm实例,采用rmi协议,默认连接端口为1099

(前提是远程服务器提供jstatd服务)

输出内容如下:

jones@jones:~/data/ebook/java/j2se/jdk_gc$ jps

6286 Jps

6174  Jstat。

9. jconsole

一个图形化界面,可以观察到java进程的gcclass,内存等信息。虽然比较直观,但是个人还是比较倾向于使用jstat命令(在最后一部分会对jstat作详细的介绍)

<!--EndFragment-->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值