JVM-7.JVM 性能监控 jdk命令

JVM-7.JVM 性能监控 jdk命令

常见监控和故障处理工具

名称 描述
jps JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程
jstat JVM Statistics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据
jinfo Configuration Info for Java,显示虚拟机配置信息
jmap Memory Map for Java,生成虚拟机的内存转储快照(heapdump文件)
jhat JVM Heap Dump Browser,用于分析heapdump文件,建立一个http/html服务器,让用户在浏览器上查看分析结果
jstack Stack Trace forJava,显示虚拟机的线程快照

1. jps,虚拟机进程状况工具

列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class)名称,一级这些进程的本地虚拟机唯一ID(Local Virtual Machine Identifier,LVMID)。
命令格式:

jps [ options ] [ hostid ]

选项:

选项 作用
-q 输出LVMID,省略主类的名称
-m 输出虚拟机进程启动时传给主类main()函数的参数
-l 输出主类的全名,如果进程执行的是jar包,输出Jar路径
-v 输出虚拟机启动时的JVM参数

2. jstat:虚拟机统计信息监视工具

jstat(JVM Statistics Monitoring Tool)是用于监视虚拟机各种运行状态信息的工具。
显示本地或者远程虚拟机进程中的类加载,内存,垃圾收集,JIT编译等数据。
命令格式:

jstat [ option vmid [internval] [s | ms] [count]] ]

如果是本地虚拟机VMID和LVMID一直,如果是远程虚拟机,VMID格式为:

[protocol: ] [//] vmid [@hostname[:port]/servername]

参数interval和count标识查询间隔和次数,如果省略说明只查询一次。
下例每隔250毫秒查询一次进程2764的GC情况,查询20次。

jstat -gc 2764 250 20

选项主要分三类:类装载,垃圾收集,运行编译情况:

选项 作用
-class 监视类装载,卸载数量,总空间,以及类装载所耗费的时间
-gc 监视Java堆情况,包括Eden区,两个Survivor区,老年代,永久带等的容量,已用空间,GC时间合计等
-gccapacity 监视内容与-gc一致,但输出主要关注Java堆各个区域使用达到的最大,最小空间
-gcutil 监视内容与-gc一致,单输出主要关注已使用空间占总空间的百分比
-gccause 与-gcutil功能一样,但是额外输出导致上一次GC产生的原因
-gcnew 监视新生代GC状况
-gcnewcapacity 和-gcnew基本相同,但主要关注使用的最大,最小空间
-gcold 监视老年代GC状况
-gcoldcapacity 监视内容和-gcold相同,主要关注使用的最大,最小空间
-gcpermcapacity 输出永久带使用的最大最小空间(jdk1.8测试没有该选项)
-compiler 输出JIT编译器编译过的方法,耗时等信息
-printcompilation 输出已经被JIT编译过的方法

3. jinfo:Java配置信息工具

实时查看和调整虚拟机的各项参数。
命令格式:

jinfo [ option ] pid

macOS 10.14.1+jdk1.8.0这个命令好像有bug,会SIGKILL掉进程

4.jmap:Java内存映像工具

用于生成堆存储快照(heapdump)。
还可以查询finalize执行队列,Java堆和永久代的详细信息。
*除了jmap命令,获取Java对存储快照还可以有以下方法:

  • -XX:+HeapDumpOnOutOfMemoryError参数,使虚拟机在OOM异常出现之后自动生成dump文件
  • -XX:+HeapDumpOnCtrlBeak参数,ctrl+break键可以使虚拟机生成dump文件
  • kill -3命令:进程退出信号,也能拿到dump文件
    命令格式:
jmap [ option ] vmid

选项:

选项 描述
-dump 生成Java堆转存快照,格式为:-dump:[live, ] format=b,file=<filename>,其中live参数标识只dump出存活的对象
-finalizerinfo 显示在F-Queue中等待Finalizer线程执行的finalize方法额对象
-heap 显示Java 堆相信信息,如使用哪种回收器,参数配置,分代状况
-histo 显示堆中对象统计信息,包括类,实例数量,合计容量
-permstat 以ClassLoader为统计口径显示永久代内存状态
-F 在虚拟机对-dump选项无响应时,强制生成dumo快照

macOS 10.14.1+jdk1.8.0这个命令异常,会SIGKILL掉进程

5. jhat:虚拟机堆转储快照分析工具

用来和jmap搭配使用,分析jmap生成的heapdump文件。
内置了一个http/html服务器,生成dump文件的分析结果,在浏览器中查看。
没有Visual VM强大。

6. jstack:Java堆栈跟踪工具

用于生成虚拟机当前时刻的线程快照(一般叫做threaddump或javacore文件)。
线程快照就是虚拟机内每一条线程正在执行的方法堆栈的集合。
格式:

jstack [ option ] vmid

选项:

选项 作用
-F 当正常请求不被响应时,强制输出线程堆栈
-l 除堆栈外,显示关于锁的附加信息
-m 如果调用本地方法,显示C/C++堆栈

7. HSDIS:JIT生成代码反汇编

让HotSpot的-XX:+PrintAssembly指令调用它来吧动态的代码还原为汇编代码输出,同时伴随大量高价值注释。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,056评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,842评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,938评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,296评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,292评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,413评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,824评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,493评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,686评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,502评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,553评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,281评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,820评论 3 305
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,873评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,109评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,699评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,257评论 2 341

推荐阅读更多精彩内容