JDK自带监控工具 jps、jinfo、jstat、jmap、jconsole
常用有五个命令行工具:
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的更多相关文章
- JDK自带工具jps,jstat,jmap,jconsole使用
jps 与ps命令类似: ps -ef|grep java 用来显示本地的java进程,查看本地执行着几个java应用,并显示进程号. [root@SE43 ~]# jps //仅仅显示进程号 238 ...
- JDK命令行(jps、jstat、jinfo、jmap、jhat、jstack、jstatd、hprof)与JConsole
很多资料在介绍JDK命令行工具时并不是在Java8环境下,因此还在使用过时的永久区系列的参数,给一些读者造成困难. Java8使用Metaspace(元空间)代替永久区,对于64位平台,为了压缩JVM ...
- jvm性能监控(3)-jdk自带工具 jps jstack jmap
一.概要: jps -l 查看现有的java进程 jps -l 显示所有正在运行的java进程id jstack 查看Java线程 jstack -l pid; 做thread dump ...
- JDK自带监控工具
该篇文章,主要是工具普及,告诉大家有这么两款工具,可帮助我们进行JVM调优,及时看到JVM的变化. 不过建议,最好还是对于JVM相关的知识点,有一定的基础和熟悉. JDK自带jconsole.exe和 ...
- jvm系列六、windows用jdk自带工具jps、jstack找出性能最差的代码
一.运行程序TestGC 二.用jps找出当前应用的进程号PID 到jdk安装目录的bin目录下输入: jps -l PID为1264 三.启动Process Explorer(下载地址:https: ...
- java自带工具-jps、jinfo、jstack、jstat、jmap
掌握java自带的这些监控工具,有助与我们很好的分析问题和jvm性能调优秀.收集了些网上整理很好的文章. Java监控工具.调优.调试辅助函数 Java自带的GUI性能监控工具Jconsole以及Ji ...
- JDK自带JVM性能调优监控工具jps、jstack、jmap、jhat、jstat
原文地址:https://www.jianshu.com/p/db954cb968fb JVM性能调优监控工具jps.jstack.jmap.jhat.jstat位于JDK的bin目录,这些工具短小精 ...
- JDK自带VM分析工具jps,jstat,jmap,jconsole
一.概述 SUN 的JDK中的几个工具,非常好用.秉承着有免费,不用商用的原则.以下简单介绍一下这几种工具.(注:本文章下的所有工具都存在JDK5.0以上版本的工具集里,同javac一样,不须特意安装 ...
- jvm系列(四):jvm调优-命令大全(jps jstat jmap jhat jstack jinfo)
文章同步发布于github博客地址,阅读效果更佳,欢迎品尝 运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole.大名鼎 ...
随机推荐
- AC日记——魔方 洛谷 P2007
魔方 思路: 模拟: 代码: #include <cstdio> #include <cstring> #include <iostream> #include & ...
- 将datatable导出为excel的三种方式(转)
一.使用Microsoft.Office.Interop.Excel.DLL 需要安装Office 代码如下: 2 public static bool ExportExcel(Sy ...
- sublime text3中使用Emmet部分标签无法闭合
转载自:http://geek100.com/2490/ 不过很早就发现br,input, img在sublime text中是没有闭合标签 / 的. 我一般都是手动补上的, 今天突然想起这个问题, ...
- HDU 2473 Junk-Mail Filter 【并查集删除】
Junk-Mail Filter Time Limit: 15000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- Python与数据结构[3] -> 树/Tree[1] -> 表达式树和查找树的 Python 实现
表达式树和查找树的 Python 实现 目录 二叉表达式树 二叉查找树 1 二叉表达式树 表达式树是二叉树的一种应用,其树叶是常数或变量,而节点为操作符,构建表达式树的过程与后缀表达式的计算类似,只不 ...
- SPOJ PT07J - Query on a tree III(划分树)
PT07J - Query on a tree III #tree You are given a node-labeled rooted tree with n nodes. Define the ...
- HDU 6313: Hack it
Hack It Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- 【块状树】【博弈论】bzoj3729 Gty的游戏
块状树,每个块的根记录一下当前块内距块根为奇数距离的异或和和偶数距离的异或和,询问的时候讨论一下即可. 总的节点数可能超过50000. #include<cstdio> #include& ...
- maven-pom-properties
出处: http://blog.csdn.net/taiyangdao/article/details/52358083
- 使用GIT时排除NuGet的packages文件夹
这段时间一直在用GIT做本地自己写的程序的源码管理工具,在使用的过程中发现了一个问题:Git往往会把NuGet的packages文件夹作为项目的一部分给添加进来了.网上搜了一下,原因是GIT只是和文件 ...