推广 热搜: 行业  机械  设备    经纪  教师  参数  系统    蒸汽 

JVM调优常用命令及工具

   日期:2024-11-11     移动:http://mip.xhstdz.com/quote/77263.html

目录

JVM调优常用命令及工具

1、jstat命令

1.1、查看class加载统计

1.2、查看编译统计

1.3、垃圾回收统计

2、jmap命令

2.1、查看内存使用情况 jmap -heap 262968

2.2、查看内存中对象数量及大小

2.3、将内存使用情况dump到文件中

2.4、通过jhat对dump文件进行分析

2.5、通过MAT工具对dump文件进行分析

3、jstack命令

4、jdk自带jvisualvm工具

5、gc日志分析工具gceasy


jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。

 

1.1、查看class加载统计

E:IDEAWorkSpacezsy-teacher-server>jps -l 455796 org.jetbrains.idea.maven.server.RemoteMavenServer 212432 468948 sun.tools.jps.Jps 262968 com.zhixinhuixue.teacher.academic.ZSYAcademicApplication 328040 org.jetbrains.jps.cmdline.Launcher 380680 org.jetbrains.jps.cmdline.Launcher

E:IDEAWorkSpacezsy-teacher-server>jstat -class 262968 加载类数量 占用空间 未加载数量 未加载占用空间  时间       Loaded  Bytes  Unloaded  Bytes     Time  14647 26952.9        0     0.0      12.69

1.2、查看编译统计

E:IDEAWorkSpacezsy-teacher-server>jstat -compiler 262968 编译数量 失败数量 不可用数量 时间  失败类型  失败方法 Compiled Failed Invalid   Time   FailedType FailedMethod     9242      0       0     1.77          0

1.3、垃圾回收统计

每500ms统计一次gc情况,共执行200次。jstat -gc 262968 500 200

S0C:第一个Survivor区的大小(KB) S1C:第二个Survivor区的大小(KB) S0U:第一个Survivor区的使用大小(KB) S1U:第二个Survivor区的使用大小(KB) EC:Eden区的大小(KB) EU:Eden区的使用大小(KB) OC:Old区大小(KB) OU:Old使用大小(KB) MC:方法区大小(KB) MU:方法区使用大小(KB) CCSC:压缩类空间大小(KB) CCSU:压缩类空间使用大小(KB) YGC:年轻代垃圾回收次数 YGCT:年轻代垃圾回收消耗时间 FGC:老年代垃圾回收次数 FGCT:老年代垃圾回收消耗时间 GCT:垃圾回收消耗总时间

jmap可以进行内存使用情况的汇总,并对内存的溢出进行定位与分析。

 

2.1、查看内存使用情况 jmap -heap 262968

 

2.2、查看内存中对象数量及大小

jmap -histo 262968 | more  查看所有对象,包括活跃与非活跃

 

jmap -histo:live 262968 | more   查看活跃对象

 
对象说明
B byte
C char
D double
F float
I int
J long
Z boolean
[ 数组,如 [I 表示 int[]
[L + 类名 其他对象

2.3、将内存使用情况dump到文件中

  • 手动导出dump文件:jmap -dump:live,format=b,file=dump.hprof PID  /  jmap -dump:format=b,file=dump.dat PID
  • 自动导出dump文件(当jvm堆内存溢出时:-XX:+HeapDumponOutOfMemoryError -XX:HeapDumpPath=/home/temp/dump.hprof
 

2.4、通过jhat对dump文件进行分析

jhat -port <port> <file>
 
 

2.5、通过MAT工具对dump文件进行分析

MAT(Memory Analyzer Tool) ,一个基于 Eclipse 的内存分析工具,是一个快速、功能丰
富的 JAVA heap 分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。
http://www.eclipse.org/mat/

 若dump文件过大,可以加大-Xmx

 参考https://www.cnblogs.com/liangzs/p/8489321.html

用法jstack <pid>

 
 

VisualVM,能够监控线程,内存情况,查看方法的CPU时间和内存中的对象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。 VisualVM使用简单,几乎0配置,功能还是比较丰富的,几乎囊括了其它JDK自带命令的所有功能。

  • 内存信息
  • 线程信息
  • Dump堆(本地进程
  • Dump线程(本地进程
  • 打开堆Dump。堆Dump可以用jmap来生成。
  • 打开线程Dump
  • 生成应用快照(包含内存信息、线程信息等等
  • 性能分析。CPU分析(各个方法调用时间,检查哪些方法耗时多,内存分析(各类对象占用的内存,检查哪些类占用内存多

 

 

https://www.gceasy.io/

 

 

 

 

本文地址:http://sjzytwl.xhstdz.com/quote/77263.html    物流园资讯网 http://sjzytwl.xhstdz.com/ , 查看更多

特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关行业动态
推荐行业动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号