JVM常见参数

从Elasticsearch的jvm.options读懂JVM参数的生效核验、内存分账与诊断兜底 写进配置的JVM参数不一定生效,生效的参数也未必适合你的场景。本文以Elasticsearch的jvm.options为样板,结合JDK 8与JDK 17的可复现实验,先讲如何用PrintFlagsFinal、jcmd与进程内自检核实参数终值和来源,再讲堆怎么分:存储型服务把一半内存留给页缓存,堆不越过约31GB的压缩指针边界;计算型服务先用NMT量出堆外再定堆。随后梳理分代比例与晋升阈值、GC日志新旧写法、堆转储与OOM退出、异常栈保留及CMS到G1、ZGC的演进,最后给出模板与核验清单。 阅读详情

这些选项控制Java HotSpot虚拟机怎么进行垃圾回收。

- -XX:+AggressiveHeap

java堆最佳化设置。设置多个参数使长时间运行过的任务使用密集的内存分配。 默认这个选项时关闭的,也就是堆不是最佳化。

- -XX:+AlwaysPreTouch

在调用main函数之前,使用所有可用的内存分页。这个选项可以用来测试长时间运行的系统,所有的内存都已被分配。默认这个选项

是关闭的,也就是不会使用所有的内存分页。

- -XX:+CMSClassUnloadingEnabled

当使用CMS垃圾收集器时,允许类卸载。这个选项模式是开启的。为了禁止类卸载,那么可以使用: -XX:-CMSClassUnloadingEnabled

- -XX:CMSExpAvgFactor=percent

指定垃圾收集消耗的时间百分比。默认这个数是25%。下面的例子设置成15%:

-XX:CMSInitiatingOccupancyFraction=percent

设置CMS收集开始的百分比。默认值是-1,任何的负值表示会使用-XX:CMSTriggerRatio选项来定义这个百分比数。

下面的例子设置成了20%,表示老年代使用20%后开始垃圾收集;

-XX:+CMSScavengeBeforeRemark

在CMS重新标记之前执行清除操作,默认这个选项是关闭的。

-XX:CMSTriggerRatio=percent

设置由-XX:MinHeapFreeRatio指定值的百分比的值。默认是80%。

下面的例子设置成了75%:

-XX:ConcGCThreads=threads

并发GC的线程数量。默认值根据cpu的数量而定。下面的例子把这个值设置为2

-XX:+DisableExplicitGC

这个选项控制显式GC,也就是调用System.gc(),默认在调用这个方法的时候就会发生gc,如果不允许显式gc,那么调用这个方法的时候,就不会发生gc行为。

-XX:+ExplicitGCInvokesConcurrent

当调用System.gc()的时候, 执行并行gc。默认是不开启的,只有使用-XX:+UseConcMarkSweepGC选项的时候才能开启这个选项。

-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses

当调用System.gc()的时候, 执行并行gc。并在垃圾回收的周期内卸载类。 只有使用-XX:+UseConcMarkSweepGC选项的时候才能开启这个选项。

-XX:G1HeapRegionSize=size

当使用G1收集器时,设置java堆被分割的大小。这个大小范围在1M到32M之间。下面的例子把这个值设置成了16M。

-XX:+G1PrintHeapRegions

打印G1收集器收集的区域。默认这个选项是关闭的。

-XX:G1ReservePercent=percent

使用g1收集器时,设置保留java堆大小,防止晋升失败。范围是0到50.默认设置是10%。下面的例子把这个值设置成20%。

-XX:InitialHeapSize=size

初始化堆大小。

-XX:InitialSurvivorRatio=ratio

设置幸存区的比例。

-XX:InitiatingHeapOccupancyPercent=percent

设置进行垃圾回收的堆占用的百分比。

-XX:MaxGCPauseMillis=time

设置GC最大暂停时间。默认没有最大暂停时间。下面的例子设置最大暂停时间为500毫秒。

-XX:MaxHeapSize=size

最大堆大小。

-XX:MaxHeapFreeRatio=percent

设置堆垃圾回收后最大空闲空间比例。默认是70%。下面的例子把这个值设置成75.

-XX:MaxMetaspaceSize=size

设置最大的本地内存类员工间可用于垃圾回收。默认没有限制。下面的例子把这个值设置成256m

-XX:MaxNewSize=size

新生代最大大小。

-XX:MaxTenuringThreshold=threshold

在新生代中对象存活次数(经过Minor GC的次数)后仍然存活,就会晋升到旧生代。

-XX:MetaspaceSize=size

设置类元空间大小。

-XX:MinHeapFreeRatio=percent

堆最小空间百分比。

XX:NewRatio=ratio

设置新生代和老年代的比例。

-XX:NewSize=size

设置年轻代的大小

-XX:ParallelGCThreads=threads

并行收集线程数量。

-XX:+ParallelRefProcEnabled

如果应用有很多的Reference or finalizable objects,那么可以使用-XX:+ParallelRefProcEnabled来减少duration。

-XX:+PrintAdaptiveSizePolicy

打印自适应收集的大小。默认关闭。

-XX:+PrintGC

打印GC信息。

-XX:+PrintGCApplicationConcurrentTime

打印自从上次gc停顿到现在过去了多少时间。

-XX:+PrintGCApplicationStoppedTime

打印gc一共停顿了多长时间。

-XX:+PrintGCDateStamps

打印gc时间戳

-XX:+PrintGCDetails

打印gc详细信息

-XX:+PrintGCTaskTimeStamps

为每个独立的gc线程打印时间戳。

-XX:+PrintGCTimeStamps

打印gc时间戳

-XX:+PrintStringDeduplicationStatistics

打印字符串去重统计信息。

-XX:+PrintTenuringDistribution

打印对各代信息。

-XX:+ScavengeBeforeFullGC

在进行fullGC时先进行YGC。

-XX:StringDeduplicationAgeThreshold=threshold

字符串存活的最小年龄 ,默认是3.

-XX:SurvivorRatio=ratio

幸存代的比例。

-XX:TargetSurvivorRatio=percent

年轻代收集后,幸存代期望的比例值。

-XX:TLABSize=size

设置本地线程收集缓冲区的初始化大小。

-XX:+UseAdaptiveSizePolicy

使用自适应分代大小。

-XX:+UseConcMarkSweepGC

使用cms垃圾回收器。

-XX:+UseG1GC

使用G1垃圾回收器

-XX:+UseGCOverheadLimit

限制GC的运行时间

-XX:+UseParallelGC

使用 Parallel收集器。

-XX:+UseParallelOldGC

使用 ParallelOld垃圾回收器。

-XX:+UseParNewGC

使用ParNew垃圾回收器

-XX:+UseSerialGC

使用 Serial垃圾回收器。

-XX:+UseStringDeduplication

使用字符串去重机制。

-XX:+UseTLAB

年轻代中使用本地线程收集块

告别TwinCAT:手把手教你用IgH EtherCAT Master在LinuxCNC上搭建实时运动控制平台 本文详细介绍了如何利用IgH EtherCAT Master和LinuxCNC搭建开源实时运动控制平台,替代商业软件TwinCAT。通过分步指南,包括实时Linux环境配置、EtherCAT主站安装、LinuxCNC集成及多轴同步控制实现,帮助开发者构建高性能、低成本的工业自动化解决方案。 阅读详情

相关推荐

3DGS-to-PC实战指南:零代码实现3D高斯场景到点云/Mesh的高效转换

本文详细介绍了3DGS-to-PC工具如何实现3D高斯场景到点云/Mesh的高效转换,无需代码即可完成。通过实战案例和参数调优技巧,帮助用户快速掌握这一开源插件的使用方法,提升3D数据处理效率。特别适合建筑扫描、影视特效等领域的专业人士。

q1w3e5r7t9y的博客 273

JVM常用调优参数 ——JVM篇

JVM常用性能调优参数详解 ​ 在学习完整个JVM内容后,其实目标不仅是学习了解整个JVM的基础知识,而是为了进行JVM性能调优做准备,所以以下的内容就是来说说JVM性能调优的知识。 一、性能调优 ​ 性能调优包含多个层次,比如:架构调优、代码调优、JVM调优、数据库调优、操作系统调优等等。 ​ 架构调优和代码调优是JVM调优的基础,其中架构调优是对系统影响最大的。 性能调优基本上按照以下步骤进行: 明确优化目标 发现性能瓶颈 性能调优 通过监控及数据统计工具获得数据 确认是否达到目标 二、何时进

YING—country的博客 2万+

BUCK降压电路设计实战:从理论到PCB的完整指南

本文详细介绍了BUCK降压电路的设计实战,从基础原理到PCB布局的完整指南。通过关键部件选型、PCB布局黄金法则和调试技巧,帮助工程师高效设计稳定可靠的开关电源。特别针对电感、MOSFET和电容选型提供实用公式和避坑指南,并分享高温环境下的工程经验与测试方法。

weixin_33744141的博客 453

JVM参数详细配置说明

对于大多数应用来说,Java 堆(Java Heap)是Java 虚拟机所管理的内存中最大的一块。Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。 1. JVM内存结构 由上图可以清楚的看到JVM的内存空间分为3大部分: 堆内存 方法区 栈内存 其中栈内存可以再细分为java虚拟机栈和本地方法栈,堆内存可以划分为新生代和老年代,新生代中还可以再次划分为Eden区...

傅红雪的专栏 1万+

六自由度机器人(机械臂)运动学建模及运动规划系列(一)——简介

毕业设计做了六轴机器人相关的课题,做完之后学到很多,在这里分享一下。

weixin_47849087的博客 2万+

开关电源设计实战:如何用AP值快速选型磁芯(附计算公式推导)

本文为开关电源工程师提供了基于AP值的磁芯快速选型实战指南。文章深入解析了AP值作为磁芯‘功率吞吐量’指标的核心物理意义,并通过详细的公式推导和24W反激电源设计实例,手把手演示如何利用AP值计算公式,结合电流密度、窗口利用率等关键参数,从众多磁芯型号中高效筛选出合适型号,同时强调了选型后的关键校验步骤与常见误区。

weixin_29234239的博客 875

JVM虚拟机默认参数

前言 我们都知道jvm有一个堆内存的概念,我们可以通过-Xmx:最大堆内存,-Xms初始化堆内存来进行设置。 那么当我们不设置时默认是多少呢 堆内存 这里直接贴上官网jdk1.8的链接https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/parallel.html#default_heap_size 翻译如下: 默认堆大小 除非在命令行上指定了初始堆大小和最大堆大小,否则它们将根据计算机上的内存量进行计算。 最大物理内存大小不超

weixin_42324471的博客 1859

【SLAM】探索explore_lite在移动机器人自主建图中的高效边界检测策略

本文深入解析了explore_lite在移动机器人自主建图中的应用,重点探讨了其高效的贪婪边界检测策略。该工具包专为资源受限平台设计,通过直接利用SLAM生成的地图信息,以极低的计算开销实现快速、稳定的未知区域探索,并与move_base导航框架无缝协作,是轻量级机器人自主探索的优选方案。

purple的博客 1067

JVM启动参数大全及默认值

Java启动参数共分为三类; 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容; 其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用; 一、JVM标准参数(-) JVM的标准参数都是以”-“开头,通过输入”java -help”或者”java -?”,可以查看JVM标准参数列表。如 以下是JVM标准参数的详细

街头看日出的博客 485

雷达回波仿真

文章目录前言一、基础理解1.慢时间维度和快时间维度2.脉冲压缩3.MTI4. 脉冲多普勒处理5.cacfar检测二、具体流程1.产生回波信息加入目标时延以及噪声2.解调回波得到基带信号3.脉冲压缩 MTI MTD cafar检测 前言 雷达算法仿真学习,主要流程包括生成目标回波,将基带信号加在载波上其次是加上目标信息和干扰信号后发射,解调回波信号得到基带信号然后MTI,MTD,最后再检测。 一、基础理解 1.慢时间维度和快时间维度 连续M个脉冲回波经过相干解调之后的基带数据形成的一个二维数据矩阵,.

qq_42961235的博客 1万+

【python科研数据处理】将Endnote自动搜索的所有pdf文件,全都移动指定文件夹中

将Endnote自动搜索到的全部pdf文件,全都移动指定文件夹中1 背景2 问题解决 手动反爬虫,禁止转载:原博地址 https://blog.youkuaiyun.com/lys_828/article/details/122370892(优快云博主:Be_melting) 知识梳理不易,请尊重劳动成果,文章仅发布在优快云网站上,在其他网站看到该博文均属于未经作者授权的恶意爬取信息 1 背景 在进行期末考试周后,面对最后一门功课,需要提交至少80篇SCI参考文献,因此最快下载文献的方式就是通过Web of S

lys_828的博客 1826

JVM参数及默认值

1 标准参数 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 通过命令java即可查看 用法: java [-options] class [args...] (执行类) 或 java [-options] -jar jarfile [args...] (执行 jar 文件) 其中选项包括: -d32 使用 32 位数据模型 (如果可用) -d64 使用 64 位数据模型 (如...

zhangjunli的博客 1653

基于AUTOSAR的汽车电子项目--电动助力转向系统

基于AUTOSAR的汽车电子项目开发通常涵盖广泛的领域,例如动力系统控制、车身电子、信息娱乐系统、高级驾驶辅助系统(ADAS)等。以下是一个简化的示例项目,展示了如何在AUTOSAR环境下开发一个电动助力转向系统(Electric Power Steering, EPS)的控制软件

MHD0815的博客 2131

JVM 调优常见参数

本文对JVM涉及的常见的调优参数和垃圾回收参数进行阐述。

埃泽漫笔 915

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

JVM虚拟机----JVM 常见参数

JVM 常见参数 4.2.7 简单总结

Miracle_Gaaral的博客 212

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

常见JVM参数汇总

常见配置举例: 设置:-Xmx3550m -Xms3550m -Xmn2g -Xss128k 设置:-Xmx3550m -Xms3550m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxPermSize=16m -XX:MaxTenuringThreshold=0 吞吐量优先的并行收集器,并行收集器主要以到达一定的吞吐量为目标,适用于科学技术...

wangsweetkid的专栏 1334

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

掌握JVM参数优化配置与常见JVM异常分析

JVM参数类型与设置 安装JDK,配置系统环境参数后,输入java -help,红框标记的就是我们设置 JVM参数的区域。 [-options]意思是不强制要求设置,java命令支持各种参数设置,这些参数可以分为以下类别 标准参数:JVM的所有实现所支持的最常用的参数 (在jdk各版本之间稳定,不会有较大变化)。 非标准参数(-X):是特定于Java HotSpot虚拟机的通用选项(了解就行)。 高级运行时参数(-XX):控制Java HotSpot VM的运行时行为(重点)。 这里我们重点讲高级运行

bao_taotao的博客 1481

关于JVM调优的工具及JVM 常见调优参数

六个命令行排查工具 我们一般使用 JDK 自带的 6 个命令行工具来排查JVM。它们分别是:jps、jstat、jinfo、jmap、jhat 和 jstack,它们都位于 JDK 的 bin 目录下,可以使用命令行工具直接运行。 jps(虚拟机进程状况工具) jps(JVM Process Status tool,虚拟机进程状况工具),用于列出正在运行的 JVM 的 LVMID(Local Virtual Machine IDentifier,本地虚拟机唯一 ID),以及 JVM 的执行主类、JVM 启动

Gebo的博客 1229

JAVA常见的 JVM 参数及其典型默认值

JVM 参数及其典型默认值

xiaowangbadan0_0的博客 987

常见JVM参数笔记

本文记录了工作和学习中常用到的一些jvm参数,后期会更新增加G1和ZGC的使用参数。

Henry_ss的博客 437

JVM-常见JVM参数、如何查看JVM参数、如何动态设置JVM参数

1 JVM参数 1.1 标准参数 // 查看java版本 -version // help命令就不用了说了吧 -help // -server // 指定类运行所依赖其他类的路径,通常是类库和jar包,需要全路径到jar包,多个jar包之间连接符, // window上分号“;”.Linux下使用“:” -cp 1.2 -x参数 非标准参数,也就是在JDK各个版本中可能会变动 -Xi...

抠脚的汉子 2607

idea中设置JVM参数,简单理解JVM常见参数,JVM调优简单入门

学习了几个常用JVM参数,总结如下OutOfMemoryError简称OOM,学习了几个基本的内存溢出后,对以后才能有更好的帮助。工作中遇到了内存溢出时,能根据异常信息来判断是那个区域的内存溢出,也知道什么样的代码可能会造成这些区域会出现内存溢出,并且知道一些处理手段。Java程序员日常学习笔记,如理解有误欢迎各位交流讨论!

m0_67402125的博客 4383

Jvm 常见配置参数

java虚拟机配置参数

u010046451的博客 545

JVM 常见的启动参数

JVM 常见的启动参数 -Xms: 设置堆的最小值。 -Xmx: 设置堆的最大值。 -Xmn: 设置新生代的大小。 -Xss: 设置每个线程的栈大小。 -XX:NewSize: 设置新生代的初始值。 -XX:MaxNewSize : 设置新生代的最大值。 -XX:PermSize: 设置永久代的初始值。 -XX:MaxPermSize: 设置永久代的最大值。 -XX:Surviv...

jcsyl_mshot的博客 564

JAVA中常见的JVM配置以及参数释义

垃圾回收相关的JVM参数:-Xms / -Xmx — 堆的初始大小 / 堆的最大大小-Xmn — 堆中年轻代的大小-XX:-DisableExplicitGC — 让System.gc()不产生任何作用-XX:+PrintGCDetails — 打印GC的细节-XX:+PrintGCDateStamps — 打印GC操作的时间戳-XX:NewSize / XX:MaxNewSize — 设置新生代...

weixin_30411239的博客 87

JVM内存参数设置及常见错误总结

一、JVM规范 JVM规范对Java运行时的内存划定了几块区域(详见这里),有:JVM栈(Java Virtual Machine Stacks)、堆(Heap)、方法区(Method Area)、常量池(Runtime Constant Pool)、本地方法栈(Native Method Stacks),但对各块区域的内存布局和地址空间却没有明确规定,而留给各JVM厂商发挥的空间。 ...

hellozhxy的博客 1397
上一篇: SOA 微服务 RPC WebService Soap关系详解
下一篇: newFixedThreadPool(1)和newSingleThreadExecutor()的区别
暗夜荆棘鸟
博客等级 码龄12年 9粉丝 12原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值