JVM调优参数归纳汇总

2023-11-17

GC通常参数

-Xss:每个线程的栈大小
-Xms:初始堆大小,默认物理内存的1/64
-Xmx:最大堆大小,默认物理内存的1/4
-Xmn:新生代大小
-XX:ParallelGCThreads:指定GC工作的线程数量
-XX:MinHeapSize 最小堆大小
-XX:InitialHeapSize 初始化堆大小
-XX:MaxHeapSize 最大堆

元空间大小同时收集器会对该值进行调整: 如果释放了大量的空间, 就适当降低该值; 如果释放了很少的空间, 那么在不超过-XX:MaxMetaspaceSize(如果设置了的话) 的情况下,适当提高该值。这个跟早期jdk版本的-XX:PermSize参数意思不一样,-XX:PermSize代表永久代的初始容量。

关于元空间的JVM参数有两个:-XX:MetaspaceSize=N和 -XX:MaxMetaspaceSize=N
-XX:MaxMetaspaceSize: 设置元空间最大值, 默认是-1, 即不限制, 或者说只受限于本地内存大小。
-XX:MetaspaceSize: 指定元空间触发Fullgc的初始阈值(元空间无固定初始大小), 以字节为单位,默认是21M左右,达到该值就会触发full gc进行类型卸载,

新生代中survivor区域与Eden区域占比默认 1:8

 -XX:NewSize:设置新生代初始大小
-XX:NewRatio:默认2表示新生代占老年代的1/2,占整个堆内存的1/3。
-XX:SurvivorRatio:默认8表示一个survivor区占用1/8的Eden内存,即1/10的新生代内存。
-XX:MaxTenuringThreshold:设置转入老年代的存活次数。如果是0,则直接跳过新生代进入老年代
  
Eden与Survivor区默认8:1,JVM默认的8:1:1的比例是很合适的,让eden区尽量的大,survivor区够用即可
-XX:+UseAdaptiveSizePolicy(默认开启),会导致这个8:1:1比例自动变化,
-XX:-UseAdaptiveSizePolicy

垃圾收集器相关参数

-XX:PretenureSizeThreshold=1000000 (单位是字节)

-XX:+PrintGC  垃圾回收信息打印
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-Xloggc:filename
-XX:+PrintFlagsInitial命令查看本机的初始化参数,-XX:Metaspacesize为21810376B(大约20.8M)。

G1相关参数

-XX:+UseG1GC:使用G1收集器
-XX:G1HeapRegionSize:指定分区大小(1MB~32MB,且必须是2的N次幂),默认将整堆划分为2048个分区
-XX:MaxGCPauseMillis:目标暂停时间(默认200ms)
-XX:G1NewSizePercent:新生代内存初始空间(默认整堆5%,值配置整数,默认就是百分比)
-XX:G1MaxNewSizePercent:新生代内存最大空间
-XX:G1ReservePercent=percent  设置堆内存保留大小,以防晋升失败 0~50 默认10%

-XX:TargetSurvivorRatio:Survivor区的填充容量(默认50%),Survivor区域里的一批对象(年龄1+年龄2+年龄n的多个年龄对象)总和超过了Survivor区域的50%,此时就会把年龄n(含)以上的对象都放入老年代
-XX:MaxTenuringThreshold:最大年龄阈值(默认15)**
-XX:InitiatingHeapOccupancyPercent:老年代占用空间达到整堆内存阈值(默认45%),则执行新生代和老年代的混合收集(MixedGC),比如我们之前说的堆默认有2048个region,如果有接近1000个region都是老年代的region,则可能就要触发MixedGC了
-XX:G1MixedGCLiveThresholdPercent(默认85%) region中的存活对象低于这个值时才会回收该region,如果超过这个值,存活对象过多,回收的的意义不大。

-XX:G1MixedGCCountTarget:在一次回收过程中指定做几次筛选回收(默认8次),在最后一个筛选回收阶段可以回收一会,然后暂停回收,恢复系统运行,一会再开始回收,这样可以让系统不至于单次停顿时间过长。
-XX:G1HeapWastePercent(默认5%): gc过程中空出来的region是否充足阈值,在混合回收的时候,对Region回收都是基于复制算法进行的,都是把要回收的Region里的存活对象放入其他Region,然后这个Region中的垃圾对象全部清理掉,这样的话在回收过程就会不断空出来新的Region,一旦空闲出来的Region数量达到了堆内存的5%,此时就会立即停止混合回收,意味着本次混合回收就结束了

ZGC参数

-XX:+UseZGC 启用ZGC
-XX:ZAllocationSpikeTolerance
-XX:ZFragmentationLimit
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JVM调优参数归纳汇总 的相关文章

  • 如何创建一个显示 Spinners 的 x 和 y 值的表格?

    我想创建一个位于图表右侧的表格 其中显示 2 列 x 和 y 值已输入到xSpin and ySpin旋转器 我已经画了一张我想要桌子放置的位置的图 我尝试过在网格窗格布局中使用文本框来创建表格并将值直接输入到文本框网格中 但是我无法将它们
  • SAML 服务提供商 Spring Security

    当使用预先配置的服务提供者元数据时 在 Spring Security 中 是否应该有 2 个用于扩展元数据委托的 bean 定义 一份用于 IDP 元数据 一份用于 SP 元数据
  • 如何使用 Java 处理 Selenium WebDriver 中的新窗口?

    这是我的代码 driver findElement By id ImageButton5 click Thread sleep 3000 String winHandleBefore driver getWindowHandle drive
  • Java AES 128 加密方式与 openssl 不同

    我们遇到了一种奇怪的情况 即我们在 Java 中使用的加密方法会向 openssl 生成不同的输出 尽管它们在配置上看起来相同 使用相同的键和 IV 文本 敏捷的棕色狐狸跳过了懒狗 加密为 Base64 字符串 openssl A8cMRI
  • 比较两个文本文件的最快方法是什么,不将移动的行视为不同

    我有两个文件非常大 每个文件有 50000 行 我需要比较这两个文件并识别更改 然而 问题是如果一条线出现在不同的位置 它不应该显示为不同的 例如 考虑这个文件A txt xxxxx yyyyy zzzzz 文件B txt zzzzz xx
  • 按第一列排序二维数组,然后按第二列排序

    int arrs 1 100 11 22 1 11 2 12 Arrays sort arrs a b gt a 0 b 0 上面的数组已排序为 1 100 1 11 2 12 11 22 我希望它们按以下方式排序a 0 b 0 首先 如果
  • 具有 java XSLT 扩展的数组

    我正在尝试使用 java 在 XSLT 扩展中使用数组 我收到以下错误 Caused by java lang ClassCastException org apache xpath objects XObject cannot be ca
  • 使用 SQLITE 按最近的纬度和经度坐标排序

    我必须获得一个 SQLite SQL 语句 以便在给定初始位置的情况下按最近的纬度和经度坐标进行排序 这是我在 sqlite 数据库中的表的例句 SELECT id name lat lng FROM items EXAMPLE RESUL
  • 普罗米修斯指标 - 未找到

    我有 Spring Boot 应用程序 并且正在使用 vertx 我想监控服务和 jvm 为此我选择了 Prometheus 这是我的监控配置类 Configuration public class MonitoringConfig Bea
  • Jersey 客户端请求中未设置 Content-Length-Header

    我正在使用 Jersey Client 访问网络服务 如下所示 response r accept MediaType TEXT PLAIN TYPE header content length 0 post String class 其中
  • 如何知道抛出了哪个异常

    我正在对我们的代码库进行审查 有很多这样的陈述 try doSomething catch Exception e 但我想要一种方法来知道 doSomething 抛出了哪个异常 在 doSomething 的实现中没有 throw 语句
  • Struts 2 + Sitemesh 3 集成 - FreemarkerDecoratorServlet 中的 NPE

    我将 Struts 2 版本 2 3 14 3 与 Sitemesh 3 版本 3 0 alpha 2 一起使用 并且在某些情况下遇到 NullPointerException 首先 这是我的 web xml 中的 struts2 site
  • Netty:阻止调用以获取连接的服务器通道?

    呼吁ServerBootstrap bind 返回一个Channel但这不是在Connected状态 因此不能用于写入客户端 Netty 文档中的所有示例都显示写入Channel从它的ChannelHandler的事件如channelCon
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用
  • 替换后增量

    我自己已经有一个问题了 但我想扩展它后增量示例 https stackoverflow com questions 51308967 post increment with example char a D int b 5 System o
  • HQL Hibernate 内连接

    我怎样才能在 Hibernate 中编写这个 SQL 查询 我想使用 Hibernate 来创建查询 而不是创建数据库 SELECT FROM Employee e INNER JOIN Team t ON e Id team t Id t
  • 具有特定参数的 Spring AOP 切入点

    我需要创建一个我觉得很难描述的方面 所以让我指出一下想法 com x y 包 或任何子包 中的任何方法 一个方法参数是接口 javax portlet PortletRequest 的实现 该方法中可能有更多参数 它们可以是任何顺序 我需要
  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • 带有 Maven Wrapper 的 Java 17 导致无法识别的 VM 选项“MaxPermSize=512m”

    I use OpenJDK 17 https jdk java net 17 使用 Maven Wrapper 3 8 2 从春季初始化 https start spring io Maven项目 JAR打包 Java 17 Spring
  • 如何在 JFreeChart 中设置多个系列的线条粗细?

    我创建了很多图表 在他们每个人中我都需要打电话 renderer setSeriesStroke i new BasicStroke 2 0f 对于每个系列 renderer is chart getXYPlot getRenderer 我

随机推荐

  • linux笔记shell脚本基础语法

    目录 一 基础 变量定义 echo 命令 printf命令 二 数组 关联数组 三 流程控制 1 if 分支选择 2 case 分支选择 3 for in 和 for i 循环 4 while 循环 5 break和continue 四 传
  • 科学数字_科学探秘:解密一组神奇的数字:142857

    众所周知 阿拉伯数字由0 9一共十位计数符号所组成的 是现今全世界都通用的数字 其起源于公元500年前 历史十分悠久 阿拉伯数字可以组成不同的新数字 早前呢有人在金字塔某一地方发现了一组有趣的数字142857 但是不知道具体位置 接下来呢小
  • Python基础学完了再学什么?

    Python基础学完了再学什么 基础阶段学完Python 基础语法 python 容器 函数和文件操作 面向对象 python编程和web基础 Linux 操作系统多任务编程 Python 网络编程 静态 web 服务器 HTML CSS
  • Linux定时清理30天前的Tomcat日志脚本

    一 在tomcat的log路径下新建 sh脚本文件clean sh 内容如下 bin bash logs path mnt tomcat apache tomcat 8 5 23 logs find logs path mtime 30 n
  • 目标检测算法——GFocal loss

    https zhuanlan zhihu com p 147691786
  • 命令行传参

    命令行传参 运行一个程序时传递给它消息 依靠命令行参数给main 函数实现 public class mainTest public static void main String args for int i 0 i lt args le
  • windows上pycharm远程调试GPU服务器报错 Cannot load cudnn shared library

    参考 Pycharm问题 pycharm远程调试报错ImportError libcusolver so 9 0 cannot open shared object file 原因 LD LIBRARY PATH 环境变量pycham没有找
  • 解决uni-app微信小程序底部input输入框,键盘弹起时页面整体上移问题

    一 存在的问题 微信小程序聊天界面 当input 框获取焦点时会自动调起手机键盘 当键盘弹起时 会导致页面整体上移 页面头信息会消失不见 二 需要实现的效果 1 键盘弹出时 底部的输入框跟随键盘上弹 2 页面头固定在顶部不动 3 聊天信息区
  • s-des密码算法实现

    实验二 S DES算法实现 一 S DES算法分析 1 Simplified DES方案 简称S DES方案 它是一个供教学而非安全的加密算法 它与DES的特性和结构类似 但参数小 加密算法涉及五个函数 1 初始置换IP initial p
  • Flutter使用SharedPreferences一直报初始化的问题

    以下代码可以解决 定义一个全局的存储对象 late SharedPreferences sp void main async 加入后可正常使用 WidgetsFlutterBinding ensureInitialized 初始化存储 sp
  • C#readonly关键字

    readonly是一种常量修饰符 区别于const 分别进行记录 先说const const是静态常量或者叫编译时常量 是指编译器在编译时候会对常量进行解析 并将常量的值替换成初始化的那个值 必须在声明的时候初使化 const 关键字声明的
  • Java工程师学快速Python(3)----- 模块、包、库 输入 输出

    简单的说一个 py文件就是一个模块 多个 py文件整合成一个包 各种包的集合就是库 import 语句 想使用 Python 源文件 只需在另一个源文件里执行 import 语句 语法如下 import module1 module2 mo
  • Endnote显示cannot edit range(无法编辑range)

    1 方法1 这种问题的原因可能是选择了 Convert to Unformatted Citations 正确的方法应该是在Word中选择endnote页面 Convert Word Citations to EndNote 然后再 Upd
  • 全栈之前端

    欢迎关注 全栈工程师修炼指南 公众号 设为 星标 每天带你 基础入门 到 进阶实践 再到 放弃学习 专注 企业运维实践 网络安全 系统运维 应用开发 物联网实战 全栈文章 等知识分享 花开堪折直须折 莫待无花空折枝 作者主页 https w
  • 如何在word文档中添加两个目录

    由于需要在一个word文档中添加两个目录 第一个目录表示文章前半部分的内容 第二个目录表示后半部分的内容 对于word不太熟悉的我经过一番折腾之后终于搞定了 在此记录一下 原理 将word文本划分成两个域 而每个域里的标题可以看做是不同的书
  • echarts 关系图 参数_Echarts关系图(使用重力图)

    首先展示一下该关系图效果 很简单的关系图 不过其中经历不少波折 使用的是echarts2 现在贴出代码 1 functiondos 2 var name document getElementById name value 3 post G
  • Pandas玩转数据透视表,用它就够了~

    大家好 我是丁小杰 对于数据透视表 相信对于 Excel 比较熟悉的小伙伴都知道如何使用它 并了解它的强大之处 而在pandas中要实现数据透视就要用到pivot table了 导入示例数据 首先导入演示的数据集 import pandas
  • 【C++】STL之栈(stack)介绍

    栈 stack 栈是一种运算受限的线性表 限定仅在表尾进行插入和删除的操作 插入 push 弹出 pop 其特性就是先进后出 即先插入的元素最后才能弹出 大家可以把栈想象成一个弹夹 你只能在顶层一颗一颗装入子弹 先装的子弹在最底层 打出时也
  • 学什么副业前景好?学一个什么副业比较好?自学副业有哪些?

    很多公司不希望自己的员工做副业 主要还是担心员工做副业会影响到工作 如果员工在下班后的空闲时间搞搞副业 那公司就没法管了呀 你平时下班后的空闲时间都做些什么 学什么副业前景好 1 自学ps 现在很多影楼 摄影工作室 电商商家会把自己拍摄的照
  • JVM调优参数归纳汇总

    GC通常参数 Xss 每个线程的栈大小 Xms 初始堆大小 默认物理内存的1 64 Xmx 最大堆大小 默认物理内存的1 4 Xmn 新生代大小 XX ParallelGCThreads 指定GC工作的线程数量 XX MinHeapSize