JVM监控与性能调优

1、jvm参数类型:标准参数、X参数、XX参数

标准参数:例如-help、-server、-client、-version、-showversion、-cp、-classpath;在jdk的各个版本中,基本是不变的,java -version

X参数:即非标准化参数,才jdk各个版本中变化的可能性很大,

      -Xint::该参数完全解释执行,不会把java代码转化成本地代码

     -Xcomp:第一次使用就编译成本地代码,可想而知第一次比较慢

     -Xmixed:混合模式,JVM自己来决定是否编译成本地代码

java执行有解释执行和编译执行,不能说完全解释执行和编译执行

C:\Users\Administrator>java -version
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) Client VM (build 25.172-b11, mixed mode, sharing)

默认采取的是mixed mode

改成解释执行Xint

C:\Users\Administrator>java -Xint -version
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) Client VM (build 25.172-b11, interpreted mode, sharing)

改成编译执行Xcomp

C:\Users\Administrator>java -Xcomp -version
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) Client VM (build 25.172-b11, compiled mode, sharing)

XX参数:非标准化参数,相对不稳定,主要用于JVM调优和Debug

Boolean类型:格式-XX:[+-]<name>表示启用或者禁用name属性,+是启用,-禁用

  比如:-XX:+UseConcMarkSweepGC

             -XX:+UseG1GC

非Boolean类型:格式-XX:<name>=<value> 表示name属性的值是value

比如:-XX:MaxGCPauseMillis=500  GC的最大停顿时间

           -XX:GCTimeRatio=19

-Xmx -Xms -xss是XX参数, -xss是设置堆得

ps -ef| grep tomcat

查看进程堆大小:jinfo -flag MaxHeapSize 23789  

查看线程堆栈的大小 jinfo -flag ThreadStackSize 23789

 2、查看JVM运行时参数

   -XX:+PrintFlagsInitial 查看一些初始值

   -XX:+PrintFlagsFinal  查看最终的值

   -XX:+UnlockExperimentalVMOptions  解锁实验参数

   -XX:+UnlockDiagnosticVMOptions  解锁诊断参数

  -XX:+PrintCommandLineFlags   打印命令行参数

   java -XX:+PrintFlagsFinal -version   结果  =是默认的, false代表没有启用

重定向到一个文件中:java -XX:+PrintFlagsFinal -version >flags.txt,即会在当前路径生产一个flags.txt文件

jps:专门用来查看java

如何查看已经正在运行的JVM   jinfo

也可以这么查  jinfo -flags 23789

 3、   jstat查看jvm虚拟机统计信息

 可以查看类加载的信息、垃圾收集信息、JIT编译,

命令: jstat -help

查看进程23789的类加载信息,jstat -class 23789

查看垃圾回收信息:jstat -gc 23789

jstat -gc 23789 1000 10     实时查看内存变化情况,10代表10秒钟输出一次

查看进程编译信息jstat -compiler 23789

 4、jmap+MAT实战内存溢出

5、如何导出内存映象文件

内存溢出自动导出

-XX:+HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath=./

只需把两个参数放在run congration--->vm 和堆栈设置大小一样

使用jmap命令手动导出

jps查看id

由此可以看出59.28%出现了内存溢出

6、jstack实战死循环与死锁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿365

祝你好运,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值