JDK自带工具jps,jstat,jmap,jconsole使用
来源:互联网 发布:win7系统盘清理软件 编辑:程序博客网 时间:2024/05/17 10:52
jps
与ps命令类似:
ps -ef|grep java
用来显示本地的java进程,查看本地运行着几个java应用,并显示进程号。
[root@SE43 ~]# jps //只显示进程号23813 Jps710 Bootstrap792 Bootstrap
[root@SE43 ~]# jps -v //显示jvm参数23852 Jps -Denv.class.path=.:/usr/jdk1.6.0_21/lib/dt.jar:/usr/jdk1.6.0_21/lib/tools.jar -Dapplication.home=/usr/jdk1.6.0_21 -Xms8m710 Bootstrap -Xms2048m -Xmx2048m -XX:NewRatio=2 -XX:PermSize=256M -XX:MaxPermSize=512M -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/root/zhusj/apache-tomcat-6.0.18_1/conf/logging.properties -Dcom.sun.management.jmxremote.port=8119 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.endorsed.dirs=/root/zhusj/apache-tomcat-6.0.18_1/endorsed -Dcatalina.base=/root/zhusj/apache-tomcat-6.0.18_1 -Dcatalina.home=/root/zhusj/apache-tomcat-6.0.18_1 -Djava.io.tmpdir=/root/zhusj/apache-tomcat-6.0.18_1/temp
jstat
很强大的监视jvm内存工具,可用来查看堆内各个部分的使用量,以及加载类的数量。使用时,需指定java进程号。一般使用 -gcutil 查看gc情况。
[root@SE43 ~]# jstat -class 710 //显示加载class的数量,及所占空间等信息Loaded Bytes Unloaded Bytes Time 11242 24450.0 41 65.8 30.25
jstat -compiler pid:显示VM实时编译的数量等信息。
jstat -gc pid:可以显示gc的信息,查看gc的次数及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。jstat -gccapacity pid:可以显示VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。
S0 — Heap上的 Survivor space 0 区已使用空间的百分比S1 — Heap上的 Survivor space 1 区已使用空间的百分比E — Heap上的 Eden space 区已使用空间的百分比O — Heap上的 Old space 区已使用空间的百分比P — Perm space 区已使用空间的百分比YGC — 从应用程序启动到采样时发生 Young GC 的次数YGCT– 从应用程序启动到采样时 Young GC 所用的时间(单位秒)FGC — 从应用程序启动到采样时发生 Full GC 的次数FGCT– 从应用程序启动到采样时 Full GC 所用的时间(单位秒)GCT — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)
jstat -compiler pid:显示VM实时编译的数量等信息。
jstat -gc pid:可以显示gc的信息,查看gc的次数及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。
jstat -gccapacity pid:可以显示VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。
S0 — Heap上的 Survivor space 0 区已使用空间的百分比
S1 — Heap上的 Survivor space 1 区已使用空间的百分比
E — Heap上的 Eden space 区已使用空间的百分比
O — Heap上的 Old space 区已使用空间的百分比
P — Perm space 区已使用空间的百分比
YGC — 从应用程序启动到采样时发生 Young GC 的次数
YGCT– 从应用程序启动到采样时 Young GC 所用的时间(单位秒)
FGC — 从应用程序启动到采样时发生 Full GC 的次数
FGCT– 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
GCT — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)
[root@SE43 ~]# jstat -gcutil 710 //gc的统计信息 S0 S1 E O P YGC YGCT FGC FGCT GCT 0.00 15.69 80.03 38.70 33.30 123 21.421 1 0.817 22.238[root@B1943 ~]#jstat -gcutil 710 1000 5 //每1000毫秒打印一次,共5次
jmap
可以输出某个java进程内存内对象的情况,甚至可以将VM 中的heap,以二进制输出成文本。
[root@B1943 ~]# jmap -histo 710 >mem.txt //可使用文本对比工具对比出GC回收了哪些对象该文件中内容如:num #instances #bytes class name<pre class="plain" name="code">----------------------------------------------4: 1202692 67350752 java.io.ObjectStreamClass$WeakClassKey
[root@B1943 ~]#jmap -dump:format=b,file=mem.bin 710 //将该进程heap输出到mem.bin文件中,使用二进制形式。该文件可供其他分析工具使用,如eclipse memory analyser//注:jmap使用的时候jvm是处在假死状态的,只能在服务瘫痪的时候为了解决问题来使用,否则会造成服务中断
jconsole、jvisualvm
http://jiajun.iteye.com/blog/810150
个人认为 jvisualvm就是jconsole的升级版。可以监视、观察java程序的情况。
也可以监视tomcat,这里记录下监视tomcat的方法。
监视tomcat需要修改bin/catalina.sh文件:在 Execute The Requested Command前面加上如下配置
CATALINA_OPTS="-Dcom.sun.management.jmxremote.port=8799-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=false"
重启tomcat后就可以被jvisualvm监视了。
- JDK自带工具jps,jstat,jmap,jconsole使用
- jdk中自带 jstat,jconsole,jps,jmap,jhat使用
- jdk自带vm分析工具jps,jstat,jmap,jconsole
- JDK自带监控工具 jps、jinfo、jstat、jmap、jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps,jstat,jmap,jconsole
- JDK自带VM分析工具jps|jstat|jmap|jconsole使用
- 转 JDK自带VM分析工具jps,jstat,jmap,jconsole
- 使用JDK自带工具jstat发现内存泄露问题
- 使用JDK自带工具jstat发现内存泄露问题
- 将本地git仓库推送到github上
- 用Bash Script编写Hadoop MapReduce Streaming
- 浅析深究什么是SOA?
- 2015欧冠决赛--脑力劳动结硕果
- Spark的安装
- JDK自带工具jps,jstat,jmap,jconsole使用
- 全排列算法
- Java命令行
- LeetCode172:Factorial Trailing Zeroes
- 理解为什么要使用Ioc
- linux命令
- java编程——吸血鬼数字(四位)
- 黑马程序员_模版方法设计模式
- 初级算法整理,字符串的前后换位