分类: JVM 2010-10-04 11:05 587人阅读 评论(0) 收藏 举报

常用有五个命令行工具:
jinfo: 可以输出并修改运行时的java 进程的opts 。
jps: 与unix 上的ps 类似,用来显示本地的java 进程,可以查看本地运行着几个java 程序,并显示他们的进程号。
jstat: 一个极强的监视VM 内存工具。可以用来监视VM 内存内的各种堆和非堆的大小及其内存使用量。
jmap: 打印出某个java 进程(使用pid )内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。
jconsole: 一个java GUI 监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM 。

接下来是对这些工具的详细介绍:

从最简单的jstat 工具开始:我想很多人都是用过unix 系统里的ps 命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程,及其id 。
jps 也是一样,它的作用是显示当前系统的java 进程情况,及其id 号。我们可以通过它来查看我们到底启动了几个java
进程(因为每一个java 程序都会独 占一个java 虚拟机实例),和他们的进程号(为下面几个程序做准备),并可通过opt
来查看这些进程的详细启动参数。
使用方法:在当前命令行下打 jps( 需要JAVA_HOME ,没有的话,到改程序的目录下打)

接下来是jstat ,我之所以这次调优是因为,目前情况下,并发用户一多就会产生响应时间长的问题。虽然很开就解决了,决定首先对VM
内存使用量监控。jstat 工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id
,和所选参数。以下详细介绍各个参数的意义。
jstat -class pid: 显示加载class 的数量,及所占空间等信息。
jstat -compiler pid: 显示VM 实时编译的数量等信息。
jstat -gc pid: 可以显示gc 的信息,查看gc 的次数,及时间。其中最后五项,分别是young gc 的次数,young gc 的时间,full gc 的次数,full gc 的时间,gc 的总时间。
jstat -gccapacity: 可以显示,VM 内存中三代(young,old,perm )对象的使用和占用大小,如:PGCMN
显示的是最小perm 的内存使 用量,PGCMX 显示的是perm 的内存最大使用量,PGC 是当前新生成的perm 内存占用量,PC
是但前perm 内存占用量。其他的可以根据这个类推, OC 是old 内纯的占用量。
jstat -gcnew pid:new 对象的信息。
jstat -gcnewcapacity pid:new 对象的信息及其占用量。
jstat -gcold pid:old 对象的信息。
jstat -gcoldcapacity pid:old 对象的信息及其占用量。
jstat -gcpermcapacity pid: perm 对象的信息及其占用量。
jstat -gcutil pid: 统计gc 信息统计。
jstat -gccause pid:统计gc信息,并显示最后一次引发gc的事件。

jstat -printcompilation pid: 当前VM 执行的信息。
除了以上一个参数外,还可以同时加上 两个数字,如:jstat -printcompilation 3024 250 6 是每250 毫秒打印一次,一共打印6 次,还可以加上-h3 每三行显示一下标题。

jmap 是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap ,以二进制输出成文本。使用方法 jmap -histo pid
。如果连用SHELL jmap -histo pid>a.log 可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC
回收了哪些对象。jmap -dump:format=b,file=String 3024 可以将3024 进程的内存heap
输出出来到String 文件里。

jinfo: 的用处比较简单,就是能输出并修改运行时的java 进程的运行参数。用法是jinfo -opt   pid 如:查看2788 的MaxPerm 大小可以用   jinfo -flag MaxPermSize 2788 。

jconsole 是一个用java 写的GUI 程序,用来监控VM ,并可监控远程的VM ,非常易用,而且功能非常强。由于是GUI 程序,这里就不详细介绍了,不会的地方可以参考SUN的官方文档。
使用方法:命令行里打 jconsole ,选则进程就可以了。

以下是这些工具的SUN 官方说明:
jps:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jps.html
jstat:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstat.html
jmap:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jmap.html
jconsole:http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html

JDK自带监控工具 jps、jinfo、jstat、jmap、jconsole的更多相关文章

  1. JDK自带工具jps,jstat,jmap,jconsole使用

    jps 与ps命令类似: ps -ef|grep java 用来显示本地的java进程,查看本地执行着几个java应用,并显示进程号. [root@SE43 ~]# jps //仅仅显示进程号 238 ...

  2. JDK命令行(jps、jstat、jinfo、jmap、jhat、jstack、jstatd、hprof)与JConsole

    很多资料在介绍JDK命令行工具时并不是在Java8环境下,因此还在使用过时的永久区系列的参数,给一些读者造成困难. Java8使用Metaspace(元空间)代替永久区,对于64位平台,为了压缩JVM ...

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

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

  4. JDK自带监控工具

    该篇文章,主要是工具普及,告诉大家有这么两款工具,可帮助我们进行JVM调优,及时看到JVM的变化. 不过建议,最好还是对于JVM相关的知识点,有一定的基础和熟悉. JDK自带jconsole.exe和 ...

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

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

  6. java自带工具-jps、jinfo、jstack、jstat、jmap

    掌握java自带的这些监控工具,有助与我们很好的分析问题和jvm性能调优秀.收集了些网上整理很好的文章. Java监控工具.调优.调试辅助函数 Java自带的GUI性能监控工具Jconsole以及Ji ...

  7. JDK自带JVM性能调优监控工具jps、jstack、jmap、jhat、jstat

    原文地址:https://www.jianshu.com/p/db954cb968fb JVM性能调优监控工具jps.jstack.jmap.jhat.jstat位于JDK的bin目录,这些工具短小精 ...

  8. JDK自带VM分析工具jps,jstat,jmap,jconsole

    一.概述 SUN 的JDK中的几个工具,非常好用.秉承着有免费,不用商用的原则.以下简单介绍一下这几种工具.(注:本文章下的所有工具都存在JDK5.0以上版本的工具集里,同javac一样,不须特意安装 ...

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

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

随机推荐

  1. KISSY - A Powerful JavaScript Framework

    KISSY 是一款跨终端.模块化.高性能.使用简单的 JavaScript 框架.除了完备的工具集合如 DOM.Event.Ajax.Anim 等,它还提供了经典的面向对象.动态加载.性能优化解决方案 ...

  2. php发送http请求的两种常用方法

    第一种:使用CURL,直接上代码,开箱即用: <?php // return file_get_contents("http://thinkphp.com/index/index/cr ...

  3. yii2框架获取刚插入数据库的id (原创)

    $insert_id = $UserModel->attributes['id'];

  4. [xampp] phpmyadmin 设置登录密码

    $ cd /opt/lampp/bin $ ./mysqladmin -u root password 'new_password' $ vim ../phpmyadmin/config.inc.ph ...

  5. 51nod 1283 最小周长【注意开根号】

    1283 最小周长 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 一个矩形的面积为S,已知该矩形的边长都是整数,求所有 ...

  6. 【二分答案】【最大流】bzoj3130 [Sdoi2013]费用流

    二分最大的边的cap,记作Lim. 把所有的边的cap设为min(Lim,cap[i]). Bob一定会把单位费用加到最大边上. #include<cstdio> #include< ...

  7. 【矩阵哈希】【哈希表】bzoj2351 [BeiJing2011]Matrix

    引用题解:http://blog.csdn.net/popoqqq/article/details/41084047 #include<cstdio> #include<cstrin ...

  8. (转)Android Eclipse 代码混淆

    为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译 1. 大家也许都注意到新建一个工程会看到项目下边有这样proguard-project.txt一个文件,这个对混淆代码很重要,如果你不小心 ...

  9. SpringBoot拦截器中service或者redis注入为空的问题

    原文:https://my.oschina.net/u/1790105/blog/1490098 这两天遇到SpringBoot拦截器中Bean无法注入问题.下面介绍我的思考过程和解决过程: 1.由于 ...

  10. SpringMVC——redirect重定向跳转传值

    原文:https://my.oschina.net/u/2273085/blog/398374 spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url ...