JVM-常见JVM参数、如何查看JVM参数、如何动态设置JVM参数
1 JVM参数
1.1 标准参数
// 查看java版本
-version
// help命令就不用了说了吧
-help
//
-server
// 指定类运行所依赖其他类的路径,通常是类库和jar包,需要全路径到jar包,多个jar包之间连接符,
// window上分号“;”.Linux下使用“:”
-cp
1.2 -x参数
非标准参数,也就是在JDK各个版本中可能会变动
-Xint 解释执行
-Xcomp 第一次使用就编译成本地代码
-Xmixed 混合模式,JVM自己来决定
1.3 -XX参数
使用得最多的参数类型
非标准化参数,相对不稳定,主要用于JVM调优和Debug
1.3.1 格式
a.Boolean类型
格式:-XX:[+-]<name> +或-表示启用或者禁用name属性
比如:
-XX:+UseConcMarkSweepGC 表示启用CMS类型的垃圾回收器
-XX:+UseG1GC 表示启用G1类型的垃圾回收器b.非Boolean类型
格式:-XX<name>=<value>表示name属性的值是value
比如:-XX:MaxGCPauseMillis=500
1.3.2 常见-XX参数
见文末
1.4 其他参数
其实就是部分-XX参数的简写,等价于-XX参数
-Xms1000等价于-XX:InitialHeapSize=1000
-Xmx1000等价于-XX:MaxHeapSize=1000
-Xss100等价于-XX:ThreadStackSize=100
2 查看JVM参数
在Java应用运行过程中,我们应该如何查看对应的JVM参数
- 执行命令java -XX:+PrintFlagsFinal -version即可打印出JVM中各参数。由于参数较多,建议将参数放入文件中查看:java -XX:+PrintFlagsFinal -version > xxx.txt
- 使用 jinfo -flag 参数名 PID 也可查看对应JVM参数值
3 设置JVM参数
如果设置JVM参数?有以下四种方式可设置jvm参数
- 开发工具中设置比如IDEA,eclipse
- 运行jar包的时候:java -XX:+UseG1GC xxx.jar
- web容器比如tomcat,可以在脚本中的进行设置
- 通过jinfo实时调整某个java进程的参数(参数只有被标记为manageable的flags可以被实时修改)
4 常用JVM参数及含义
参数 | 含义 | 说明 |
---|---|---|
XX:CICompilerCount=3 | 最大并行编译数 | 如果设置大于1,虽然编译速度会提高,但是同样影响系统稳定性,会增加JVM崩溃的可能 |
-XX:InitialHeapSize=100M | 初始化堆大小 | 简写-Xms100M |
-XX:MaxHeapSize=100M | 最大堆大小 | 简写-Xm x 100M |
-XX:NewSize=20M | 设置年轻代的大小 | |
-XX:MaxNewSize=50M | 年轻代最大大小 | |
-XX:OldSize=50M | 设置老年代大小 | |
-XX:MetaspaceSize=50M | 设置方法区大小 | |
-XX:MaxMetaspaceSize=50M | 方法区最大大小 | |
-XX:+UseParallelGC | 使用UseParallelGC | 新生代,吞吐量优先 |
-XX:+UseParallelOldGC | 使用UseParallelOldGC | 老年代,吞吐量优先 |
-XX:+UseConcMarkSweepGC | 使用CMS | 老年代,停顿时间优先 |
-XX:+UseG1GC | 使用G1GC | 新生代,老年代,停顿时间优先 |
-XX:NewRatio | 新老生代的比值 | 比如-XX:Ratio=4,则表示新生代:老年代=1:4,也就是新生代占整个堆内存的1/5 |
-XX:SurvivorRatio | 两个S区和Eden区的比值 | 比如-XX:SurvivorRatio=8,也就是(S0+S1):Eden=2:8,也就是一个S占整个新生代的1/10 |
-XX:+HeapDumpOnOutOfMemoryError | 启动堆内存溢出打印 | 当JVM堆内存发生溢出时,也就是OOM,自动生成dump文件 |
-XX:HeapDumpPath=heap.hprof | 指定堆内存溢出打印目录 | 表示在当前目录生成一个heap.hprof文件 |
XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStampsXloggc:$CATALINA_HOME/logs/gc.log | 打印出GC日志 | 可以使用不同的垃圾收集器,对比查看GC情况 |
-Xss128k | 设置每个线程的堆栈大小 | 经验值是3000-5000最佳 |
-XX:MaxTenuringThreshold=6 | 提升年老代的最大临界值 | 默认值为 15 |
-XX:InitiatingHeapOccupancyPercent | 启动并发GC周期时堆内存使用占比 | G1之类的垃圾收集器用它来触发并发GC周期,基于整个堆的使用率,而不只是某一代内存的使用比. 值为 0 则表示”一直执行GC循环”. 默认值为 45. |
-XX:G1HeapWastePercent | 允许的浪费堆空间的占比 | 默认是10%,如果并发标记可回收的空间小于10%,则不会触发MixedGC。 |
-XX:MaxGCPauseMillis=200ms | G1最大停顿时间 | 暂停时间不能太小,太小的话就会导致出现G1跟不上垃圾产生的速度。最终退化成Full GC。所以对这个参数的调优是一个持续的过程,逐步调整到最佳状态 |
-XX:ConcGCThreads=n | 并发垃圾收集器使用的线程数量 | 默认值随JVM运行的平台不同而不同 |
-XX:G1MixedGCLiveThresholdPercent=65 | 混合垃圾回收周期中要包括的旧区域设置占用率阈值 | 默认占用率为 65% |
-XX:G1MixedGCCountTarget=8 | 设置标记周期完成后,对存活数据上限为G1MixedGCLIveThresholdPercent 的旧区域执行混合垃圾回收的目标次数 | 默认8次混合垃圾回收,混合回收的目标是要控制在此目标次数以内 |
XX:G1OldCSetRegionThresholdPercent=1 | 描述Mixed GC时,Old Region被加入到CSet中 | 默认情况下,G1只把10%的Old Region加入到CSet中 |
JVM-常见JVM参数、如何查看JVM参数、如何动态设置JVM参数相关推荐
- RocketMQ部署之动态设置JVM启动参数
这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发.拒绝营销号,拒绝标题党 背景 线上的RocketMQ集群有运行一段时间了.比如测试环境和线上环境的RocketMQ集群部署的机 ...
- 我的世界服务器显示参数,我的世界server.properties怎么设置 联机参数设置图文教程[图]...
类型: 大小: 评分: 平台: 标签: 我的世界server.properties怎么设置,想必很多玩家都很会遇到这样的问题,别着急,下面是友情小编搜集相关资料整理出来的我的世界server.prop ...
- 一行命令获取当前JVM所有可设置的参数以及当前默认值
2019独角兽企业重金招聘Python工程师标准>>> 一行命令获取当前JVM所有可设置的参数以及当前默认值 博客分类: java jvm 一行命令获取当前JVM所有可设置的参数以及 ...
- 一文搞定JVM常见工具和优化策略
目录 1. 概述篇 1.1. 背景说明 1.3. 调优概述 1.4. 性能优化的步骤 2. JVM 监控及诊断工具-命令行篇 2.1. 概述 2.2. jps:查看正在运行的 Java 进程 2.3. ...
- jvm 常用调试工具和设置jvm GC方法和指令
JVM常用调试工具: jconsole – jconsole是基于JavaManagementExtensions (JMX)的实时图形化监测工具,这个工具利用了内建到JVM里面的JMX指令来提供实时 ...
- httpurlconnect设置中文参数_CNC数控机床三菱系统参数的设置及报警解除
在三菱CNC的硬件连接检查与设置执行完毕向系统送电后,显示器上的READY绿灯仍然不亮.而且在[诊断]――[报警] 画面上显示很多报警内容,让初次使用三菱CNC的调试工程师感到困惑.而且三菱CNC的参 ...
- httpurlconnect设置中文参数_数控三菱CNC机床参数的设置及报警解除!
数控三菱CNC的硬件连接检查与设置执行完毕向系统送电后,显示器上的READY绿灯仍然不亮.而且在[诊断]――[报警] 画面上显示很多报警内容,哪些是开机时必须设置的呢?又如何解除故障报警呢? 1.开机 ...
- httpurlconnect设置中文参数_CNC机床参数的设置及报警解除,赶紧收藏吧!
在三菱CNC的硬件连接检查与设置执行完毕向系统送电后,显示器上的READY绿灯仍然不亮.而且在[诊断]――[报警] 画面上显示很多报警内容,让初次使用三菱CNC的调试工程师感到困惑.而且三菱CNC的参 ...
- oracle dg 备库未设置convert参数导致ORA-01111,ORA-01110
2019独角兽企业重金招聘Python工程师标准>>> 查看trace 文件: MRP0: Background Managed Standby Recovery process s ...
最新文章
- 计算项目中的代码行数:Count the Lines of Code (LOC)
- 将Windows8安装在手持终端上
- 简单介绍一下Java常用的五大框架!
- 实用算法实现-第6篇	线段树
- 下载、安装Keil 5
- 华为鸿蒙系统英语报纸_“鸿蒙”系统的英文名叫这个!华为注册的这些《山海经》神兽都该怎么翻译?...
- 终极算法——第九章:解开迷惑
- matlab瑞利衰落信道仿真
- vivado中bit文件怎么没有生成_【新手入门】ISE工程升级到Vivado及板级信号调试技术...
- 关于医学影像中的轴位面(横断面)、冠状面、矢状面
- 数据清洗整理基本操作(R:dplyr、tidyr、lubridate)
- ViewFlipper-仿淘宝垂直广告滚动
- 洞见2020企业服务:“我的平台,你的花开”
- JAVA编写QQ登录界面
- 国产API 神器大更新!
- ACA云原生3阿里云容器产品体系
- python模拟点击后获取状态码_Python获取网页状态码
- 计算机ipv6无法连接,Win7系统电脑IPV6无网络访问权限该怎么办?
- co88 sap 实际结算_SAP生产订单实际成本计算
- 超外差ASK\RF433m、RF315m射频遥控模块解码教程,无线遥控器、电动窗帘遥控、RF遥控器电平信号、协议分析