02-JVM实战

01、查看参数

java -XX:+PrintFlagsFinal -version > flags.txt

值得注意的是"="表示默认值,":="表示被用户或JVM修改后的值

02、实践和单位换算

  • 1Byte(字节)=8bit(位)
  • 1KB=1024Byte(字节)
  • 1MB=1024KB
  • 1GB=1024MB
  • 1TB=1024GB
  1. 设置堆内存大小和参数打印   -Xmx100M -Xms100M -XX:+PrintFlagsFinal
  2. 查询+PrintFlagsFinal的值    :=true
  3. 查询堆内存大小MaxHeapSize    := 104857600
  4. 换算   104857600(Byte)/1024=102400(KB)   102400(KB)/1024=100(MB)
  5. 结论   104857600是字节单位

03、常用参数含义

略:-Xmx20m -Xms20m -Xmn2m

04、常用命令

jps 

查看java进程

 

jinfo

 实时查看和调整JVM配置参数

jinfo -flags PID

 

查看某个java进程的name属性的值 jinfo -flag name PID

jinfo -flag MaxHeapSize PID

jinfo -flag UseG1GC PID

修改java进程的某个值

jinfo -flag [+|-]<name> pid    ->设置指定JVM参数的布尔值

jinfo -flag <name>=<value> pid  ->设置指定JVM参数的值

jstat

查看虚拟机性能统计信息 

查看类装载信息 

查看某个java进程的类装载信息,每1000毫秒输出一次,共输出10次 

jstat -class PID 1000 10

查看垃圾收集信息

jstat -gc PID 1000 10

 

jstack

 

查看线程堆栈信息

jstack PID 

 

案例:排查死锁案例

jmap 

打印出堆内存相关信息

jmap -heap PID 

 

dump出堆内存相关信息

jmap -dump:format=b,file=heap.hprof PID 

 

发生堆内存溢出的时候,自动dump 堆内存日志

-XX:+HeapDumpOnOutOfMemoryError   -XX:HeapDumpPath=heap.hprof

05、Arthas 【重要】

https://github.com/alibaba/arthas

https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn

06、MAT

Java堆分析器,用于查找内存泄漏

下载地址:

https://www.eclipse.org/mat/downloads.php 

06、GC日志

开启GC日志:

-XX:+PrintGCDetails  -XX:+PrintGCTimeStamps  -XX:+PrintGCDateStamps  -Xloggc:gc.log

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值