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参数

  1. 开发工具中设置比如IDEA,eclipse
  2. 运行jar包的时候:java -XX:+UseG1GC xxx.jar
  3. web容器比如tomcat,可以在脚本中的进行设置
  4. 通过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参数相关推荐

  1. RocketMQ部署之动态设置JVM启动参数

    这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发.拒绝营销号,拒绝标题党 背景 线上的RocketMQ集群有运行一段时间了.比如测试环境和线上环境的RocketMQ集群部署的机 ...

  2. 我的世界服务器显示参数,我的世界server.properties怎么设置 联机参数设置图文教程[图]...

    类型: 大小: 评分: 平台: 标签: 我的世界server.properties怎么设置,想必很多玩家都很会遇到这样的问题,别着急,下面是友情小编搜集相关资料整理出来的我的世界server.prop ...

  3. 一行命令获取当前JVM所有可设置的参数以及当前默认值

    2019独角兽企业重金招聘Python工程师标准>>> 一行命令获取当前JVM所有可设置的参数以及当前默认值 博客分类: java jvm 一行命令获取当前JVM所有可设置的参数以及 ...

  4. 一文搞定JVM常见工具和优化策略

    目录 1. 概述篇 1.1. 背景说明 1.3. 调优概述 1.4. 性能优化的步骤 2. JVM 监控及诊断工具-命令行篇 2.1. 概述 2.2. jps:查看正在运行的 Java 进程 2.3. ...

  5. jvm 常用调试工具和设置jvm GC方法和指令

    JVM常用调试工具: jconsole – jconsole是基于JavaManagementExtensions (JMX)的实时图形化监测工具,这个工具利用了内建到JVM里面的JMX指令来提供实时 ...

  6. httpurlconnect设置中文参数_CNC数控机床三菱系统参数的设置及报警解除

    在三菱CNC的硬件连接检查与设置执行完毕向系统送电后,显示器上的READY绿灯仍然不亮.而且在[诊断]――[报警] 画面上显示很多报警内容,让初次使用三菱CNC的调试工程师感到困惑.而且三菱CNC的参 ...

  7. httpurlconnect设置中文参数_数控三菱CNC机床参数的设置及报警解除!

    数控三菱CNC的硬件连接检查与设置执行完毕向系统送电后,显示器上的READY绿灯仍然不亮.而且在[诊断]――[报警] 画面上显示很多报警内容,哪些是开机时必须设置的呢?又如何解除故障报警呢? 1.开机 ...

  8. httpurlconnect设置中文参数_CNC机床参数的设置及报警解除,赶紧收藏吧!

    在三菱CNC的硬件连接检查与设置执行完毕向系统送电后,显示器上的READY绿灯仍然不亮.而且在[诊断]――[报警] 画面上显示很多报警内容,让初次使用三菱CNC的调试工程师感到困惑.而且三菱CNC的参 ...

  9. oracle dg 备库未设置convert参数导致ORA-01111,ORA-01110

    2019独角兽企业重金招聘Python工程师标准>>> 查看trace 文件: MRP0: Background Managed Standby Recovery process s ...

最新文章

  1. 计算项目中的代码行数:Count the Lines of Code (LOC)
  2. 将Windows8安装在手持终端上
  3. 简单介绍一下Java常用的五大框架!
  4. 实用算法实现-第6篇 线段树
  5. 下载、安装Keil 5
  6. 华为鸿蒙系统英语报纸_“鸿蒙”系统的英文名叫这个!华为注册的这些《山海经》神兽都该怎么翻译?...
  7. 终极算法——第九章:解开迷惑
  8. matlab瑞利衰落信道仿真
  9. vivado中bit文件怎么没有生成_【新手入门】ISE工程升级到Vivado及板级信号调试技术...
  10. 关于医学影像中的轴位面(横断面)、冠状面、矢状面
  11. 数据清洗整理基本操作(R:dplyr、tidyr、lubridate)
  12. ViewFlipper-仿淘宝垂直广告滚动
  13. 洞见2020企业服务:“我的平台,你的花开”
  14. JAVA编写QQ登录界面
  15. 国产API 神器大更新!
  16. ACA云原生3阿里云容器产品体系
  17. python模拟点击后获取状态码_Python获取网页状态码
  18. 计算机ipv6无法连接,Win7系统电脑IPV6无网络访问权限该怎么办?
  19. co88 sap 实际结算_SAP生产订单实际成本计算
  20. 超外差ASK\RF433m、RF315m射频遥控模块解码教程,无线遥控器、电动窗帘遥控、RF遥控器电平信号、协议分析

热门文章

  1. 三个点在同一个半圆的概率_圆内任取三点/四点在同一半圆内的概率是多少?...
  2. 价值1000块!关于敏捷项目管理的豆瓣高分推荐书单
  3. 悬浮动画切换重叠处触发来回闪烁问题
  4. 简述相关分析(Correlation)
  5. 【opensource】开源网址推荐
  6. Ubuntu Linux 安装 QQ音乐打不开的问题
  7. 如何培养对编程开发的兴趣
  8. Windows版本下安装使用Grafana教程
  9. 8种在JavaScript数组中查找指定元素的方法(用于开发中数据的处理)
  10. 为什么有时优盘是只读模式_如何设置U盘为只读模式