JDK自带工具jps,jstat,jmap,jconsole使用
jps
与ps命令类似:
ps -ef|grep java
用来显示本地的java进程,查看本地执行着几个java应用,并显示进程号。
[root@SE43 ~]# jps //仅仅显示进程号
23813 Jps
710 Bootstrap
792 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 -Xms8m
710 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使用的更多相关文章
- jvm性能监控(3)-jdk自带工具 jps jstack jmap
一.概要: jps -l 查看现有的java进程 jps -l 显示所有正在运行的java进程id jstack 查看Java线程 jstack -l pid; 做thread dump ...
- 几个与JVM相关的JDK工具:jps, jstat, jmap
在项目中遇到OOM(Out of Memory)的问题,为了分析内存和JVM的垃圾回收器GC问题,一并把JVM相关的一些工具也研究了一下: jps:Java进程查看工具,实际上它和Unix/Linux ...
- jvm系列六、windows用jdk自带工具jps、jstack找出性能最差的代码
一.运行程序TestGC 二.用jps找出当前应用的进程号PID 到jdk安装目录的bin目录下输入: jps -l PID为1264 三.启动Process Explorer(下载地址:https: ...
- jvm系列(四):jvm调优-命令大全(jps jstat jmap jhat jstack jinfo)
文章同步发布于github博客地址,阅读效果更佳,欢迎品尝 运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole.大名鼎 ...
- [转]jvm调优-命令大全(jps jstat jmap jhat jstack jinfo)
运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole.大名鼎鼎的VisualVM,IBM的Memory Analyzer ...
- JVM调优 — 命令大全(jps jstat jmap jhat jstack jinfo)(转)
运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole.大名鼎鼎的VisualVM,IBM的Memory Analyzer ...
- jvm调优-命令大全(jps jstat jmap jhat jstack jinfo)
现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 运用jv ...
- JDK自带工具keytool生成ssl证书
前言: 因为公司项目客户要求使用HTTPS的方式来保证数据的安全,所以木有办法研究了下怎么生成ssl证书来使用https以保证数据安全. 百度了不少资料,看到JAVA的JDK自带生成SSL证书的工具: ...
- 利用JDK自带工具监控JVMCPU和内存指标
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
随机推荐
- PSPInstance Object | Web Python
PSPInstance Object | Web Python The PSPInstance object is available to all PSP pages through the psp ...
- 求解答,Android源码编译时怎样添加第三方jar包
各位大神好,遇到的问题如标题. 我用Eclipse写了一个android工程,但是这个工程需要到SDK的隐藏类,所有想在源码下编译,但是每次mm之后,都会出现错误,提示是找不到对应的类. 我需要加入的 ...
- lua select
可以用这样的方法产生类似foreach的功能: function printargs(...) local num_args = select("#", ...) for i = ...
- Redux中的重要概念
Action/Reducer/Store 首先,先看看第一张图,图中展示了Redux的单向数据流,以及Action.Reducer和Store这三个核心概念. 下面就围绕上图,非别介绍Action.R ...
- VLC-Android和VLC几个关键宏定义的分析
在用SourceInsight分析VLC-Android源码过程中,有几个宏定义在源代码中一直没有找到出处,比如 HAVE_DYNAMIC_PLUGINS和__PLUGIN__,以及MODULE_NA ...
- @init 自定义
相当于构造方法,有的时候初始化的时候有一些默认值,还有就是页面加载数据的时机问题,防止加载了页面再填数据 声明: -(instancetype)initWithName:(NSString *)aNa ...
- S - 骨牌铺方格(第二季水)
Description 在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种, ...
- Submission Details
You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...
- Apache的httpd命令详解
Apache的httpd命令详解 来源:全栈开发者 发布时间:2012-01-03 阅读次数:10965 4 httpd.exe为Apache HTTP服务器程序.直接执行程序可启动服务器的服务. ...
- class之cls
cls代表的是类本身,一般在静态方法中使用