JVM参数及使用

1 篇文章 0 订阅
1 篇文章 0 订阅

一.jvm参数
1.查看所有参数
java -XX:+PrintFlagsFinal -version
其中 "=“表示默认值,”:="表示被用户或JVM修改后的值

2.标准参数
-version
-help
-server
-cp

3.-X参数
非标准参数,即JDK各个版本中可能会变动
-Xint 解释执行
-Xcomp 第一次使用就编译成本地代码
-Xmixed 混合模式,JVM自己来决定

4.-XX参数
a.Boolean类型
格式:-XX:[±] +或-表示启用或者禁用name属性 比如:-XX:+UseConcMarkSweepGC 表示启用CMS类型的垃圾回收器
-XX:+UseG1GC 表示启用G1类型的垃圾回收器

b.非Boolean类型 格式:-XX=表示name属性的值是value 比如:-XX:MaxGCPauseMillis=500

5.其他参数
相当于是-XX类型的参数
-Xms1000等价于-XX:InitialHeapSize=1000
-Xmx1000等价于-XX:MaxHeapSize=1000
-Xss100等价于-XX:ThreadStackSize=100

二.设置参数的方式
1.开发工具中设置比如IDEA,eclipse
2.运行jar包的时候:java -XX:+UseG1GC xxx.jar
3.web容器比如tomcat,可以在脚本中的进行设置
4.通过jinfo实时调整某个java进程的参数(参数只有被标记为manageable的flags可以被实时修改)

三.常用命令
1.jinfo
a.jinfo -flag name PID 查看某个java进程的name属性的值
jinfo -flag MaxHeapSize PID
jinfo -flag UseG1GC PID

b,参数只有被标记为manageable的flags可以被实时修改
jinfo -flag [+|-] PID
jinfo -flag = PID

c.查看曾经赋过值的一些参数
jinfo -flags PID

2.jstat
a.查看虚拟机性能统计信息

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

c.查看垃圾收集信息
jstat -gc PID 1000 10

3.jstack
a.查看线程堆栈信息

b.jstack PID

c.应用于分析死锁

4.jmap
a.生成堆转储快照

b.打印出堆内存相关信息
-XX:+PrintFlagsFinal -Xms300M -Xmx300M
jmap -heap PID

c.dump出堆内存相关信息
jmap -dump:format=b,file=heap.hprof PID

d.发生堆内存溢出的时候,自动dump异常文件
JVM参数可以加上以下命令,这样内存溢出时,会自动dump出该文件
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=heap.hprof

四.常用工具
1.jconsole
JConsole工具是JDK自带的可视化监控工具。查看java应用程序的运行概况、监控堆信息、永久区使用 情况、类加载情况等。

2.jvisualvm
监控java进程的CPU,类,线程等

3.Arthas
Arthas 是Alibaba开源的Java诊断工具,采用命令行交互模式,是排查jvm相关问题的利器。

4.MAT
Java堆分析器,用于查找内存泄漏
Heap Dump,称为堆转储文件,是Java进程在某个时间内的快照

五.GC日志分析工具
1.gc日志
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps -Xloggc:gc.log

2.GCViewer
得到gc日志后,使用工具进行分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值