jvm配置

Prometheus监控JVM配置 Spring Boot 方式:适用于 Spring Boot 项目,使用 Actuator 与 Micrometer 无缝集成,配置简单,自动暴露 JVM 指标。JMX Exporter 方式:适用于非 Spring Boot 或任何 Java 应用,通过 javaagent 方式采集 JMX 指标并以 Prometheus 格式暴露,配置较为灵活。两种方案各有优缺点,具体选择可以根据项目实际情况决定。 阅读详情

堆大小设置

JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。 32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在WindowsServer2003系统,3.5G物理内存,JDK5.0下 测试,最大可设置为1478m。

典型JVM参数配置:

java -Xmx3550m-Xms3550m-Xmn2g-Xss128k

-Xmx3550m:设置JVM最大可用内存为3550M。

-Xms3550m:设置JVM初始内存为3550m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。

-Xmn2g:设置年轻代大小为2G。整个堆大小=年轻代大小+年老代大小+持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。

-Xss128k:设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大 小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000 左右。


  • java-Xmx3550m-Xms3550m-Xss128k  
  • -XX:NewRatio=4-XX:SurvivorRatio=4 
  • -XX:MaxPermSize=16m-XX:MaxTenuringThreshold=0 

-XX:NewRatio=4:设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)。设置为4,则年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5

-XX:SurvivorRatio=4:设置年轻代中Eden区与Survivor区的大小比值。设置为4,则两个Survivor区与一个Eden区的比值为2:4,一个Survivor区占整个年轻代的1/6

-XX:MaxPermSize=16m:设置持久代大小为16m。

-XX:MaxTenuringThreshold=0:设置垃圾最大年龄。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年 老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代 的存活时间,增加在年轻代即被回收的概论。

回收器选择

JVM给了三种选择:串行收集器、并行收集器、并发收集器,但是串行收集器只适用于小数据量的情况,所以这里的选择主要针对并行收集器和并发收集 器。默认情况下,JDK5.0以前都是使用串行收集器,如果想使用其他收集器需要在启动时加入相应参数。JDK5.0以后,JVM会根据当前系统配置进行 判断。

吞吐量优先的并行收集器

如上文所述,并行收集器主要以到达一定的吞吐量为目标,适用于科学技术和后台处理等。

典型JVM参数配置:


  • java-Xmx3800m-Xms3800m-Xmn2g-Xss128k  
  • -XX:+UseParallelGC-XX:ParallelGCThreads=20 
  •  

-XX:+UseParallelGC:选择垃圾收集器为并行收集器。此配置仅对年轻代有效。即上述配置下,年轻代使用并发收集,而年老代仍旧使用串行收集。

-XX:ParallelGCThreads=20:配置并行收集器的线程数,即:同时多少个线程一起进行垃圾回收。此值最好配置与处理器数目相等。

java-Xmx3550m-Xms3550m-Xmn2g-Xss128k-XX:+UseParallelGC-XX:ParallelGCThreads=20-XX:+UseParallelOldGC

-XX:+UseParallelOldGC:配置年老代垃圾收集方式为并行收集。JDK6.0支持对年老代并行收集。

java-Xmx3550m-Xms3550m-Xmn2g-Xss128k-XX:+UseParallelGC-XX:MaxGCPauseMillis=100

-XX:MaxGCPauseMillis=100:设置每次年轻代垃圾回收的最长时间,如果无法满足此时间,JVM会自动调整年轻代大小,以满足此值。

java-Xmx3550m-Xms3550m-Xmn2g-Xss128k-XX:+UseParallelGC-XX:MaxGCPauseMillis=100-XX:+UseAdaptiveSizePolicy

-XX:+UseAdaptiveSizePolicy:设置此选项后,并行收集器会自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低相应时间或者收集频率等,此值建议使用并行收集器时,一直打开。

响应时间优先的并发收集器

如上文所述,并发收集器主要是保证系统的响应时间,减少垃圾收集时的停顿时间。适用于应用服务器、电信领域等。

典型JVM参数配置:


  • java-Xmx3550m-Xms3550m-Xmn2g-Xss128k  
  • -XX:ParallelGCThreads=20 
  • -XX:+UseConcMarkSweepGC-XX:+UseParNewGC  
  •  

-XX:+UseConcMarkSweepGC:设置年老代为并发收集。测试中配置这个以后,-XX:NewRatio=4的配置失效了,原因不明。所以,此时年轻代大小最好用-Xmn设置。

-XX:+UseParNewGC:设置年轻代为并行收集。可与CMS收集同时使用。JDK5.0以上,JVM会根据系统配置自行设置,所以无需再设置此值。

java-Xmx3550m-Xms3550m-Xmn2g-Xss128k-XX:+UseConcMarkSweepGC-XX:CMSFullGCsBeforeCompaction=5-XX:+UseCMSCompactAtFullCollection

-XX:CMSFullGCsBeforeCompaction:由于并发收集器不对内存空间进行压缩、整理,所以运行一段时间以后会产生“碎片”,使得运行效率降低。此值设置运行多少次GC以后对内存空间进行压缩、整理。

-XX:+UseCMSCompactAtFullCollection:打开对年老代的压缩。可能会影响性能,但是可以消除碎片

香橙派5玩转SATA SSD:一个被忽略的overlays配置项,让你的Ubuntu系统飞起来 本文详细介绍了如何在香橙派5上通过配置`overlays=ssd-sata`启用SATA SSD作为系统启动盘,大幅提升Ubuntu系统的性能。文章深入解析了设备树覆盖的工作原理,提供了完整的配置流程和性能优化建议,帮助开发者充分发挥香橙派5的硬件潜力。 阅读详情

相关推荐

保姆级教程:用SSC Tool 5.13为先楫HPM6E00EVK生成8轴EtherCAT从站代码(含XML配置详解)

本文详细介绍了如何使用SSC Tool 5.13为先楫HPM6E00EVK开发板配置8轴EtherCAT从站,包括XML文件深度配置、代码生成与工程整合、烧录与调试技巧。教程涵盖从环境准备到性能优化的全流程,帮助开发者快速实现符合CIA402标准的8轴控制。

weixin_30352645的博客 254

Java JVM 参数设置大全

如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概率。-XX:PermSize=196m -XX:MaxPermSize=196m 根据集成构建的特点,大规模的系统编译可能需要加载大量的Java类到内存中,所以预先分配好大量的持久代内存是高效和必要的。-Xmn,-XX:NewSize/-XX:MaxNewSize,-XX:NewRatio 3组参数都可以影响年轻代的大小,混合使用的情况下,优先级是什么?

AlbenXie的博客 9111

【STM32】从零构建串口IAP框架:BootLoader与App双向跳转实战解析

本文详细解析了STM32串口IAP框架的构建,重点阐述了BootLoader与App双向跳转的实战原理与实现步骤。内容涵盖Flash分区规划、中断向量表重定向、通信协议设计及固件升级流程,并针对跳转失败、程序跑飞等常见问题提供了解决方案,帮助开发者掌握产品级远程升级的核心技术。

wind6的博客 838

JVM 常用的参数说明与配置指南

在 Java 应用的运行中,合理配置 JVM 参数对于系统的性能优化和稳定运行至关重要。本文详细介绍了常见的 JVM 参数,包括模式参数、堆内存参数、垃圾回收器参数、日志打印参数、dump 日志参数等,并提供了不同内存大小下的参数设置示例和模板,帮助您更好地理解和配置 JVM 参数,以提升 Java 应用的性能和可靠性。本文全面涵盖了 JVM 参数的各个方面,从模式选择到具体的堆内存、垃圾回收器、日志打印和 dump 日志等参数的配置。

fhey的博客 9409

Qt 5.12.8在Linux下编译qtvirtualkeyboard模块,我踩过的那些坑(附完整解决方案)

本文详细介绍了在Linux系统下为Qt 5.12.8单独编译qtvirtualkeyboard模块的完整解决方案。通过分析模块缺失原因、提供精准的编译步骤和常见问题处理,帮助开发者高效解决虚拟键盘模块缺失问题,避免重新编译整个Qt源码的繁琐过程。

weixin_29248611的博客 457

开源数字人、虚拟直播部署教程

对,你无看错,是欧美的。在直播带货案例里,我们把模型导入到ue4,我们给模型在ue4里预设了四个动作(站着、站着说话、坐着、坐着说话),三个表情(平静、开发、愤怒),三个镜头(全局、近矩说话、看显示器播放商品展示)。我们只需要把目标主播的直播给录制下来,提取样本数据,然后训练一个从粉丝的不同刺激的组合,到主播的不同响应方式的多元逻辑回归的数学模型参数即可。

南七小僧的学海无涯 4558

Java的JVM(Java虚拟机)参数配置

程序在运行过程中,会产生大量的内存垃圾(一些没有引用指向的内存对象都属于内存垃圾,因为这些对象已经无法访问,程序用不了它们了,对程序而言它们已经死亡),为了确保程序运行时的性能,java虚拟机在程序运行的过程中不断地进行自动的垃圾回收(GC)。GC是不定时去堆内存中清理不可达对象。不可达的对象并不会马上就会直接回收, 垃圾收集器在一个Java程序中的执行是自动的,不能强制执行清楚那个对象,即使程序员能明确地判断出有一块内存已经无用了,是应该回收的,程序员也不能强制垃圾收集器回收该内存块。

培根芝士的专栏 4033

20251121更新纷玩岛

【代码】20251121更新纷玩岛。

猫敷雪 1016

jvm 常见的参数

(1)-Xms20M 表示设置JVM启动内存的最小值为20M,必须以M为单位 (2)-Xmx20M 表示设置JVM启动内存的最大值为20M,必须以M为单位。将-Xmx和-Xms设置为一样可以避免JVM内存自动扩展。大的项目-Xmx和-Xms一般都要设置到10G、20G甚至还要高 (3)-verbose:gc 表示输出虚拟机中GC的详细情况 (4)-Xss128k 表示可以设置虚...

stone_tomcate的博客 786

YOLOv5源码逐行超详细注释与解读(2)——推理部分detect.py

全网最详细的YOLOv5之推理部分detect.py源码逐行注释,近四万字的超详细讲解!小白入门必看!

路人贾的博客 5万+

寻路最终版哦

相信大家用unity3d寻路的时候,一定会碰到多人

yxriyin的专栏 6953

Java中JVM常用参数配置(提供配置示例)

Java中JVM常用参数配置(提供配置示例),JVM常用参数配置,GC常用参数配置

kerwin的博客 3万+

华为OD机试真题 新系统【优化充电桩调度算法】

华为OD机试 新系统真题【优化充电桩调度算法】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【优化充电桩调度算法】

qq_45776114的博客 753

Tomcat之JVM 配置

Tomcat之JVM 配置

qq_61313896的博客 1220

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

jvm查看JVM内存配置

本文介绍了如何查看JVM内存配置。通过使用命令行参数和Java代码,我们可以查看JVM的内存结构、堆内存配置、栈内存配置和方法区配置。合理的内存配置可以提高应用程序的性能和稳定性。

互联网知识分享 3553

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jvm 内存配置

一、配置JVM内存1.配置JVM内存的参数有四个:-XmxJavaHeap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;-XmsJavaHeap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;-XmnJavaHeapYoung区大小,不熟悉最好保留默认值;-Xss每个线程的Stack大小,不熟悉最好保留默认...

nj_apple_tree 238

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

JVM学习之路(七)——JVM配置参数

七、JVM配置参数 一、jvm配置参数分为3大类: 1、跟踪参数:跟踪、监控JVM状态,用于程序员JVM调优及故障排查 2、堆分配参数:分配堆内存 3、栈分配参数:分配栈内存 二、各类配置参数常用参数: 1、常用跟踪监控参数: ①打印gc简要信息 第一个:-XX:+PrintGC 第二个:-verbose:gc 这2个参数效果一样,都是在发生gc时,打印gc简要信息的。以 1...

u012556994的博客 3万+

Elasticsearch的JVM配置

你还可以使用Elasticsearch的RESTful API来获取JVM的配置信息。是Elasticsearch进程的ID,运行上述命令将显示JVM的启动参数,包括堆内存的大小设置。在这个文件中,你可以找到有关堆内存大小、GC(垃圾回收)策略等设置的内容。这个请求将返回包含所有节点JVM设置的详细信息,包括内存大小、GC信息等。通过以上方法,你可以查看到Elasticsearch的JVM配置情况。文件中,这个文件位于Elasticsearch安装目录的。Elasticsearch的JVM设置通常保存在。

喝醉酒的小白 722

Android studio 配置jvm大小

如何在Android Studio中配置JVM大小 在开发Android应用时,JVM(Java虚拟机)的内存配置是一个关键因素,良好的配置不仅可以提升IDE的性能,还能确保你的开发体验顺畅。本文将指导你如何在Android Studio中配置JVM大小,具体步骤如下: 步骤编号 步骤描述 1 找到并打开An...

weixin_31368913的博客 818

【JVM】JVM参数配置

目录 JVM参数配置 一、标准参数 二、非标准参数 三、非Stable参数(非静态参数) 1、性能参数 2、行为参数 3、调试参数 JVM参数配置 我们学习java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决,JVM监控与调优主要的着眼点在于如何配置、如何监控、如何优化这三点上。 首先介绍JVM参数配置 在Java虚拟机的参数中,有3种表示方法 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 非标准参数(-X),默认JVM实现这些

qq_40939454的博客 405

正确配置JVM参数-附JVM参数详解

一、内存配置参数 1、参数详解 JVM参数类型 标准参数(-) 所有的JVM实现都必须实现这些参数的功能,而且向后兼容。 非标准参数(-X) 默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容。 非Stable参数(-XX) 此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用 JVMc参数几种类型说明: 布尔型参数选项:-XX:+ 打开, -XX:- 关闭。 数字型参数选项通过-XX:=设定。 字符行参数选项通过-XX:=设定,通常用来指定一个文件,路径,

beauty-coding 的博客 8809

JVM内存配置参数

题目 对于JVM内存配置参数: -Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3 ,其最小内存值和Survivor区总大小分别是()   A 5120m,1024m   B 5120m,2048m   C 10240m,1024m   D 10240m,2048m 答案解析 正确答案是:D -Xmx:最大堆大小 -Xms...

凡是过往,皆为序章 1万+

JVM——17.系统上线的JVM配置步骤

文章目录1. 预评估阶段2. JVM 参数模板3. 压力测试4. 上线后的监控 1. 预评估阶段 对于一个新系统面临上线,需要设置线上的jvm参数,最严谨的方法当然是: 评估系统中各个接口的一次请求大概会产生多少M的对象; 评估系统一秒大概会接收到多少个请求,这些请求分布在哪些接口,一共会产生多少M的对象; 根据每秒生成的对象大小,估计新生代需要给多少的内存,YGC发生的频率,进入老年代的频率; 再估计老年代应该给多少的内存,FGC发生的频率等; 最终得到需要选择什么样配置的机器,和大概的JVM配置参数;

m0_52325992的博客 1281

JVM 参数配置详细介绍

合理配置JVM参数可以显著提升应用的性能和稳定性。根据应用的具体需求和运行环境,选择合适的参数组合是非常重要的。希望以上介绍对你有所帮助。如有任何疑问或需要进一步的说明,请随时联系。

LuckFairyLuckBaby的博客 1234

如何为IntelliJ IDEA配置JVM参数

如何为IntelliJ IDEA配置JVM参数

一起coding,一起嗨。 6308

jvm参数配置

XX:InitiatingHeapOccupancyPercent=n 启动并发GC周期时的堆内存占用百分比. G1之类的垃圾收集器用它来触发并发GC周期,基于整个堆的使用率,而不只是某一代内存的使用比. 值为 0 则表示"一直执行GC循环". 默认值为 45.-XX:SurvivorRatio=8       Eden区与Survivor区的大小比值,设置为8,则两个Survivor区与一个Eden区的比值为2:8,一个Survivor区占整个年轻代的1/10。

m0_67402235的博客 1651
上一篇: mahout测试naive Bayes算法
下一篇: Java数据缓存实现的核心机制
hellocdw
博客等级 码龄15年 5粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值