JVM 调优工具研究
JDK自带了一系列的工具,一般可用于JVM的调优实践,这里做一个研究。
1、jps
jps工具可以查看到当前机器上运行的Java程序的JVM进程id,这个id通常是后续其他工具使用的基础。另外,jps工具还有一些其他的参数,可以
允许我们查看到Java程序的启动参数和当前JVM的启动参数。
exp:
[root@test13 tmp]# jps
8636 QuorumPeerMain
3497 Bootstrap
2486 Jps
参数: -l 显示当前java启动类的全程
-v 显示JVM实例的启动参数
-m 显示java程序的启动参数
2、jstat
jstat工具可以查看到指定JVM实例的内存使用情况,如新生代、老年代等的gc情况。
参数详解: jstat -option vmid interval
vmid 是jps查到的JVM实例的id
interval 是连续执行的间隔时间,可选参数,不填将只执行一次
-option 是启动参数,指定jstat命令显示哪些信息
-gcutil 最常用的命令了,可以查看各个内存部分的使用情况和gc时间等信息
-gc 更详细的内存信息,是gcutil的升级版本
-class 加载class的情况
-gccause 可以打印出gc原因
jstat -gcutil vmid 1s
output:
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 22.02 3.27 5.50 49.12 63 186.797 0 0.000 186.797
每秒输出一次
S0 是0号Survivor Space
S1 是1号Survivor Space
E 是Eden
O 是Old Generation
P 是Permanent Generation
YGC 是young gc的次数
YGCT 是young gc花费的总时间
FGC 是full gc的次数
FGCT 是full gc花费的总时间
GCT 是所有gc的时间
jstat -gc vmid 1s
output
S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT
9088.0 9088.0 0.0 2001.0 72832.0 24685.2 728192.0 40082.0 131072.0 64380.4 63 186.797 0 0.000 186.797
C代表Capacity,是可使用的空间
U代表Used, 是已用空间
3、jmap
jmap工具可以查到堆内存的具体使用情况,可以看到堆内存中每个类占的空间大小。
参数: jmap -option vmid
-option 是启动参数,指定jmap要做的事情
-heap 可以看到堆内存的使用情况
-dump 常用的参数,可以导出一个内存映像文件,解析之后可以看到内存的使用情况。jmap -dump:format=b,file=file.hprof vmid
jmap的导出文件可以用eclipse mat工具来解析。
关于性能调优的一些思考:一般来说,java程序出现性能问题,是由机器本身的两个瓶颈造成,一者是内存问题,另一则是CPU问题。java的性能问题基本可以由这两个方面来解决。当出现性能问题,首先观察问题出现的症状,如果是方法执行时间过长或出现死锁问题,则归类于CPU问题,这类问题一般是由于代码质量不高,或者是线程安全问题或者是算法效率太低引起的,那么应该定位到问题所在,修改代码;如果是程序出现偶发性的卡顿之类的问题,则诊断为内存问题,经常出现的情况就是频繁GC导致的卡顿等问题,这时候就可以用到我们的JDK工具来定位问题所在,从而解决问题。
分享到:
相关推荐
类的加载机制与jdk的调优命令 https://blog.csdn.net/weixin_41632508
关于weblogic,JDK的一些较底层的性能调优文档。
JVM调优前戏之JDK命令行工具.docx
java卸载工具, jdk卸载工具, 甲骨文官方卸载工具, 解压缩即可使用
Sun JDK 1.6内存管理--调优篇-毕玄
好东西,jvm 调优的详细介绍,让你瞬间明白,打车大图
详细介绍了jdk自带的工具的使用方法等 JDK自带工具分析 1 1、工具分类概括: 2 1.1、基本工具 2 1.2、安全工具 3 1.3、Java国际化工具 3 1.4、远程方法调用工具 3 1.5、Java IDL and RMI-IIOP 工具 3 1.6、Java 部署...
Sun JDK 1.6内存管理--调优篇
jvm命令行工具,java性能优化,jdk命令工具, jcmd命令、jps命令、jmap命令、jstack命令、jinfo命令、jstat命令
Java性能监控与调优Demo,主要学习各种JDK监控工具以及jvm调优-monitor_tuning_Demo
jdk查询文档,常用开发的工具类查询,对于初学者有很大帮助
JDK开发工具
JDK开发工具
jdk8-windowsx64工具包,主要是想留档,现在Oracle下载需要登录账号了,而且听说要收费了
JDK 是整个Java的核心,包括了Java运行环境、Java工具和Java基础类库。JDK是学好Java的第一步。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。从SUN的JDK5.0开始,提供了泛型等非常实用的功能...
windows快速切换jdk版本工具,直接通过命令行即可修改
新增和增强的 API:JDK 17.0.7 包含了许多新的和增强的 Java API,例如 Java 媒体框架、Java 加密框架、Java 容器平台等,为开发人员提供了更多的工具和功能。 更好的安全性:JDK 17.0.7 包括许多安全改进,例如增强...
JDK版本切换工具很好用的,配置及使用请参考博客园连接http://www.cnblogs.com/lusid/p/5707605.html
jdk反编译工具jdk反编译工具jdk反编译工具jdk反编译工具jdk反编译工具jdk反编译工具
java帮助文档希望与大家分享。