JDK本身提供了很多方便的JVM性能调优监控工具,有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具.

1.jps(Java Virtual Machine Process Status Tool)

最常用的就是 jps -mlvV

jps主要用来输出JVM中运行的进程状态信息。语法格式如下:

jps [options] [hostid]

如果不指定hostid就默认为当前主机或服务器。

命令行参数选项说明如下:

-q 不输出类名、Jar名和传入main方法的参数

-m 输出传入main方法的参数

-l 输出main类或Jar的全限名

-v 输出传入JVM的参数

2.jstack

最常用的用法有两种:

jstack 1234

jstack -m 1234 #native+java栈

jstack主要用来查看某个Java进程内的线程堆栈信息。语法格式如下:

jstack [option] pid

jstack [option] executable core

jstack [option] [server-id@]remote-hostname-or-ip

命令行参数选项说明如下:

-l long listings,会打印出额外的锁信息,在发生死锁时可以用jstack -l pid来观察锁持有情况

-m mixed mode,不仅会输出Java堆栈信息,还会输出C/C++堆栈信息(比如Native方法)

jstack可以定位到线程堆栈,根据堆栈信息我们可以定位到具体代码,所以它在JVM性能调优中使用得非常多。

3.jinfo

最常用用法:jinfo -flags 1234

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

4.jmap(Memory Map)和jhat(Java Heap Analysis Tool)

最常用用法:

a.查看堆的情况:jmap -heap 1234

b.dump:jmap -dump:live,format=b,file=/home/admin/logs/heap.bin 1234

或者:jmap -dump:format=b,file=/home/admin/logs/heap.bin 1234

c.查看堆被谁占用了:jmap -histo 1234 | head -10

再结合btrace的分析

jmap用来查看堆内存使用状况,一般结合jhat使用。

jmap语法格式如下:

jmap [option] pid

jmap [option] executable core

jmap [option] [server-id@]remote-hostname-or-ip

使用jmap -heap pid查看进程堆内存使用情况,包括使用的GC算法、堆配置参数和各代中堆内存使用情况。

使用jmap -histo[:live] pid查看堆内存中的对象数目、大小统计直方图,如果带上live则只统计活对象

其中class name是对象类型,说明如下:

B byte

C char

D double

F float

I int

J long

Z boolean

[ 数组,如[I表示int[]

[L+类名 其他对象)

还有一个很常用的情况是:用jmap把进程内存使用情况dump到文件中,再用jhat分析查看。jmap进行dump命令格式如下:

jmap -dump:format=b,file=dumpFileName pid。注意如果Dump文件太大,可能需要加上-J-Xmx512m这种参数指定最大堆内存,即jhat -J-Xmx512m -port 9998 /tmp/dump.dat。然后就可以在浏览器中输入主机地址:9998查看了

5.jstat

jstat参数很多,最常用的是 jstat -gcutil 1234 1000

先看JVM堆内存布局:

堆内存 = 年轻代 + 年老代 + 永久代

年轻代 = Eden区 + 两个Survivor区(From和To)

现在来解释各列含义:

S0C、S1C、S0U、S1U:Survivor 0/1区容量(Capacity)和使用量(Used)

EC、EU:Eden区容量和使用量

OC、OU:年老代容量和使用量

PC、PU:永久代容量和使用量

YGC、YGT:年轻代GC次数和GC耗时

FGC、FGCT:Full GC次数和Full GC耗时

GCT:GC总耗时

转载于:https://www.cnblogs.com/john8169/p/9780542.html

JVM性能调优监控工具总结相关推荐

  1. JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解 | 必须收藏!

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 优雅先生 来源 | my.oschina.net/feichexia/blog/1 ...

  2. 5款强大的JVM 性能调优监控工具 !

    点击上方 好好学java ,选择 星标 公众号 重磅资讯,干货,第一时间送达 今日推荐:分享一套基于SpringBoot和Vue的企业级中后台开源项目,这个项目有点哇塞!个人原创100W +访问量博客 ...

  3. JVM性能调优监控工具专题二:VisualVM基本篇之监控JVM内存,CPU,线程

    2019独角兽企业重金招聘Python工程师标准>>> JVM性能调优监控工具专题二:VisualVM基本篇之监控JVM内存,CPU,线程 博客分类: java jvm 前言: 上一 ...

  4. JVM性能调优监控工具使用详解

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"加入公众号专属技术群 来源:http://uee.me/czpHk 现实企业级J ...

  5. JVM 性能调优监控工具 jps、jstack、jmap、jhat、jstat、hprof 使用详解

    A.jps(Java Virtual Machine Process Status Tool) B.jstack C.jmap(Memory Map)和jhat(Java Heap Analysis ...

  6. linux打印jvm内存堆栈_5款强大的JVM 性能调优监控工具

    原文链接:www.iteye.com/blog/josh-persistence-2161848 现实企业级Java应用开发.维护中,有时候我们会碰到下面这些问题: OutOfMemoryError, ...

  7. 【转】JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解

    JVM性能调优监控工具jps.jstack.jmap.jhat.jstat.hprof使用详解 https://my.oschina.net/feichexia/blog/196575 转载于:htt ...

  8. python 性能优化监控工具_推荐一款非常实用的JVM性能调优监控工具(亲测好用)...

    前言 现实企业级Java开发中,有时候我们会碰到下面这些问题: 1.OutOfMemoryError,内存不足 2.内存泄露 3.线程死锁 4.锁争用(Lock Contention) 5.Java进 ...

  9. JVM性能调优监控工具专题一:JVM自带性能调优工具(jps,jstack,jmap,jhat,jstat,hprof)...

    2019独角兽企业重金招聘Python工程师标准>>> 前提概要:         JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外 ...

最新文章

  1. 2016年第31周四
  2. rust领地柜保养物品放什么_门厅柜的样式,只有这四种
  3. 开源混合云:harvester混合应用架构
  4. Java加密与解密的艺术~数字签名~RSA实现
  5. 基于JAVA+SpringMVC+MYSQL的企业员工管理系统
  6. 无显示仍然发挥树莓派——VNCserver设定
  7. QT ListView 记录
  8. 汽车自动驾驶产业链深度研究报告:自动驾驶驶向何方
  9. Ubuntu20.04安装C++版Opencv4
  10. java 优势和劣势
  11. 我爱淘二次冲刺阶段2
  12. 4816: [Sdoi2017]数字表格
  13. 免费logo设计在线生成(不定时更新)
  14. AW349 黑暗城堡
  15. WindwosAndroid浏览器内核版本检测
  16. 萧瑜 第一次博客随笔
  17. rog手机计算机测试,荣耀V8体验测试:降低分辨率的ROG模式真能省电?
  18. cad.net 利用win32api实现不重复打开dwg路径的文件夹(资源管理器)
  19. [python] ​python-pinyin库
  20. cond怎么读_cond condition是什么意思

热门文章

  1. Vue 里 几个重要的指令
  2. 问题解决: 解释器错误: 没有那个文件或目录
  3. JUC重要辅助类(同步组件及锁)
  4. Hi3516A开发-- UBI 文件系统使用指南
  5. Cgroup 研究报告
  6. 【IPFS + 区块链 系列】 入门篇 - IPFS + Ethereum (下篇)-ipfs + Ethereum 大图片存储
  7. 内核 kmap_atomic分析
  8. 开源资产管理系统_开源cmdb来啦 通用CMDB 开源资产管理系统
  9. 如何查看无线网卡型号_如何检查笔记本电脑是否具有内置无线网卡?
  10. python调用lib_基于python调用libvirt API