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使用的更多相关文章

  1. jvm性能监控(3)-jdk自带工具 jps jstack jmap

    一.概要: jps -l 查看现有的java进程 jps -l 显示所有正在运行的java进程id   jstack 查看Java线程      jstack -l pid; 做thread dump ...

  2. 几个与JVM相关的JDK工具:jps, jstat, jmap

    在项目中遇到OOM(Out of Memory)的问题,为了分析内存和JVM的垃圾回收器GC问题,一并把JVM相关的一些工具也研究了一下: jps:Java进程查看工具,实际上它和Unix/Linux ...

  3. jvm系列六、windows用jdk自带工具jps、jstack找出性能最差的代码

    一.运行程序TestGC 二.用jps找出当前应用的进程号PID 到jdk安装目录的bin目录下输入: jps -l PID为1264 三.启动Process Explorer(下载地址:https: ...

  4. jvm系列(四):jvm调优-命令大全(jps jstat jmap jhat jstack jinfo)

    文章同步发布于github博客地址,阅读效果更佳,欢迎品尝 运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole.大名鼎 ...

  5. [转]jvm调优-命令大全(jps jstat jmap jhat jstack jinfo)

    运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole.大名鼎鼎的VisualVM,IBM的Memory Analyzer ...

  6. JVM调优 — 命令大全(jps jstat jmap jhat jstack jinfo)(转)

    运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole.大名鼎鼎的VisualVM,IBM的Memory Analyzer ...

  7. jvm调优-命令大全(jps jstat jmap jhat jstack jinfo)

    现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 运用jv ...

  8. JDK自带工具keytool生成ssl证书

    前言: 因为公司项目客户要求使用HTTPS的方式来保证数据的安全,所以木有办法研究了下怎么生成ssl证书来使用https以保证数据安全. 百度了不少资料,看到JAVA的JDK自带生成SSL证书的工具: ...

  9. 利用JDK自带工具监控JVMCPU和内存指标

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

随机推荐

  1. wget命令1(转载)

    Linux系统中的wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器.wget支持HTTP,HTTPS和FTP协 ...

  2. IOS Xmpp的Iq发送和解析之请求讨论组成员

    #pragma mark - 获取讨论组成员 - (void)getDiscussionMemberInfoWithSendIq:(discussionModel *)data { NSXMLElem ...

  3. SQL Server 日期函数:某天是星期几?

    [鹏城万里] 发表于 www.sqlstudy.com 要得到某一天是星期几,需要用到 SQL Server 中的日期函数:datename(). 今天是星期几,例子 1: set language ...

  4. 从3dmax中导入模型到UDK Editor(供个人备忘)

    笔记从3dmax中导入模型到UDK Editor 1)      在3dmax中导出 2)      选择FBX格式,保存 3)      在UDK中打开content browser,自己选个pac ...

  5. 走进C++程序世界------继承和派生

    继承和派生 继承是面向对象编程语言的最重要方面之一,正确的使用继承可编写出设计良好,容易于维护和扩展的应用程序.下面是在其他博客中的总结: ****************************** ...

  6. onvif规范的实现:使用gSOAP创建SOAP调用实例

    预备知识 ONVIF规范中设备管理和控制部分所定义的接口均以Web Services的形式提供.ONVIF规范涵盖了完全的XML及WSDL的定义.每一个支持ONVIF规范的终端设备均须提供与功能相应的 ...

  7. 那些 Cynthia 教我的事 之 PMSec (一)

    一.ViewState的使用 在项目中,我一直在用Common的方法读取一些信息,但是Cynthia习惯将它存入ViewState中. ViewState 它是由ASP.NET页面框架管理的一个隐藏的 ...

  8. android学习---屏幕旋转

    /** *问题:今天学习android访问Servlet,Servlet给返回一个xml格式的字符串,android得到数据后将其显示到一个TextView中,发现Activity得到数据显 * 示到 ...

  9. java基础知识——程序员面试基础

    一.面向对象的特征有哪些? 答:①.抽象:抽象是忽略一个主题中与当前目标无关的那些方面,一边更充分的注意与当前目标有关的方面.抽象并不打算了解全面问题,而是选择其中的一部分,暂时不用部分细节.抽象包括 ...

  10. C#生成缩略图的方法

    1.需要添加应用System.Drawing.dll 2.命名空间 using System.IO; using System.Drawing; using System.Drawing.Imagin ...