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.大名鼎 ...
随机推荐
- 关于 log4j.additivity的说明
log4j.additivity是 子Logger 是否继承 父Logger 的 输出源(appender) 的标志位.具体说,默认情况下 子Logger 会继承 父Logger 的appender, ...
- 使用ShowDoc在线管理API接口文档
ShowDoc是什么 每当接手一个他人开发好的模块或者项目,看着那些没有写注释的代码,我们都无比抓狂.文档呢?!文档呢?!Show me the doc !! ShowDoc就是一个非常适合IT团队的 ...
- AC日记——Magazine Ad codeforces 803d
803D - Magazine Ad 思路: 二分答案+贪心: 代码: #include <cstdio> #include <cstring> #include <io ...
- .net core 2.0 报错:error NU1102: Unable to find package ...
原文地址:传送门 这种是nuget无法还原的问题.解决问题的方法: 在项目文件所在的目录下创建文件:NuGet.Config 里面内容: <?xml version="1.0" ...
- NOIP2011选择客栈
n家客栈,1~n编号,每家按照某一种色调装饰,共k种,每家客栈都设有咖啡店,每家咖啡店均有各自的最低消费两位游客,要求住在颜色相同,且不是同一个客栈,在两人的客栈间选择咖啡店(包括他们住的客栈),要求 ...
- 并查集+背包 【CF741B】 Arpa's weak amphitheater and Mehrdad's valuable Hoses
Descirption 有n个人,每个人都有颜值bi与体重wi.剧场的容量为W.有m条关系,xi与yi表示xi和yi是好朋友,在一个小组. 每个小组要么全部参加舞会,要么参加人数不能超过1人. 问保证 ...
- XSS && CRLF && property&attribute
XSS cross-site scripting 跨站点脚本,为了避免与css冲突,命名为XSS.它是将恶意代码作为一个网页内容,这些恶意代码会注入到用户的浏览器中并执行,从而使用户受到攻击,常见的有 ...
- golang垃圾回收
常见GC算法 我总结了一下常见的 GC 算法.分别是:引用计数法.Mark-Sweep法.三色标记法.分代收集法. 1. 引用计数法 原理是在每个对象内部维护一个整数值,叫做这个对象的引用计数,当对象 ...
- iOS 10 资料整理笔记
1.Notification(通知) 自从Notification被引入之后,苹果就不断的更新优化,但这些更新优化只是小打小闹,直至现在iOS 10开始真正的进行大改重构,这让开发者也体会到UserN ...
- Android中使用File文件进行数据存储
Android中使用File文件进行数据存储 上一篇学到使用SharedPerences进行数据存储,接下来学习一下使用File进行存储 我们有时候可以将数据直接以文件的形式保存在设备中, 例如:文本 ...