JVM之内存模型带参数

在这里插入图片描述
Spring Boot程序的JVM参数设置格式(Tomcat启动直接加在bin目录下catalina.sh文件里):

 java ‐Xms2048MXmx2048MXmn1024MXss512KXX:MetaspaceSize=256M ‐XX:MaxMetaspaceSize=256M ‐jar xxxxxx.jar

-Xss:每个线程的栈大小
-Xms:设置堆的初始可用大小,默认物理内存的1/64
-Xmx:设置堆的最大可用大小,默认物理内存的1/4
-Xmn:新生代大小
-XX:NewRatio:默认2表示新生代占年老代的1/2,占整个堆内存的1/3。
-XX:SurvivorRatio:默认8表示一个survivor区占用1/8的Eden内存,即1/10的新生代内存。
关于元空间的JVM参数有两个:-XX:MetaspaceSize=N和 -XX:MaxMetaspaceSize=N
-XX:MaxMetaspaceSize: 设置元空间最大值, 默认是-1, 即不限制, 或者说只受限于本地内存大小。
-XX:MetaspaceSize: 指定元空间触发Fullgc的初始阈值(元空间无固定初始大小), 以字节为单位,默认是21M左右,达到该值就会触发full gc进行类型卸载, 同时收集器会对该值进行调整: 如果释放了大量的空间, 就适当降低该值; 如果释放了很少的空间, 那么在不超过-XX:MaxMetaspaceSize(如果设置了的话) 的情况下, 适当提高该值。这个跟早期jdk版本的-XX:PermSize参数意思不一样,-XX:PermSize代表永久代的初始容量。
由于调整元空间的大小需要Full GC,这是非常昂贵的操作,如果应用在启动的时候发生大量Full GC,通常都是由于永久代或元空间发生了大小调整,基于这种情况,一般建议在JVM参数中将MetaspaceSize和MaxMetaspaceSize设置成一样的值,并设置得比初始值要大,对于8G物理内存的机器来说,一般我会将这两个值都设置为256M。


堆内存参数

-Xms:设置JVM初始堆大小。例如,-Xms512m表示初始堆大小为512MB-Xmx:设置JVM最大堆大小。例如,-Xmx1g表示最大堆大小为1GB-XX:NewSize-XX:MaxNewSize:分别设置新生代(Young Generation)的初始大小和最大大小。新生代是堆内存的一部分,主要用于存放新创建的对象。

-XX:SurvivorRatio:设置新生代中Eden区和Survivor区的比例。例如,设置为4意味着Eden区与Survivor区的大小比为4:1

垃圾回收参数

-XX:+UseConcMarkSweepGC:启用CMS垃圾回收器。

-XX:+UseParallelGC:启用并行垃圾回收器。

-XX:+UseG1GC:启用G1垃圾回收器。

-XX:+UseNUMA:启用NUMANon-Uniform Memory Access)支持,优化多核CPU的内存访问。

其他参数

-XX:MetaspaceSize-XX:MaxMetaspaceSize:分别设置Metaspace的初始和最大大小。MetaspaceJava 8及更高版本中元空间(PermGen)的替代品,用于存放类的元数据。

-XX:MaxDirectMemorySize:设置直接内存的最大大小。直接内存主要用于NIO操作。


性能监控和调试参数

-XX:+PrintGCDetails:打印详细的垃圾回收日志,用于调试和性能分析。

-XX:+PrintGCDateStamps:在垃圾回收日志中添加时间戳。

-XX:+HeapDumpOnOutOfMemoryError:当发生OutOfMemoryError时,生成堆转储(dump)文件。

压缩指针参数(适用于64位JVM)

-XX:-UseCompressedOops:禁用压缩指针,用于某些需要精确地址计算的应用。

这些参数可以根据应用程序的需求和性能要求进行调整,但请注意,不恰当的配置可能导致应用程序性能下降或出现错误。在生产环境中更改JVM参数之前,建议进行充分的测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/292884.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

http 503 错误

503错误是一种HTTP状态码,表示你请求的网站或服务暂时不可用,通常是因为服务器过载或维护,你可能会看到类似这样的提示:503 Service Unavailable、503 Service Temporarily Unavailable、HTTP Server Error 503、HTTP Error 503 I…

数据分析求职-简历准备

简历在整个求职过程中的重要性不言而喻,今天咱们来聊求职过程中简历准备的那些事儿~ 1. 简历究竟有啥用 求职的流程简单说就是:网申->笔试->面试->offer 其中网申环节,简历100%决定了你的通过与否,这个点大家都知道。…

计算机基础面试题 |09.精选计算机基础面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

谈谈我眼中的用户分层分析!

大家好,我是阿粥。 用户分层是几乎所有品牌都会思考的一个重要命题。 合理的分层能够帮助品牌有效提升用户的忠诚度。 这篇文章,我会带大家熟悉用户分层的基本概念、价值以及分层分析的思路。内容略干,在看的时候可以喝两口水。 同样&#xf…

css-、串联选择器和后代选择器的用法

& &表示嵌套的上一级,这是sass的语法,代表上一级选择器 .btn {&.primary {background-color: #007bff;color: #fff;} } 编译出来的结果是同一个元素,有两个类名,两个类名之间没有空格: .btn.primary {…

分布式【zookeeper面试题23连问】

1. ZooKeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终&#x…

花了一小时,拿python手搓了一个考研背单词软件

听说没有好用的电脑端背单词软件?只好麻烦一下,花了一小时,拿python手搓了一个考研背单词软件。 代码已经开源在我的github上,欢迎大家STAR! 其中,数据是存放在sqlite中,形近词跳转是根据jaro …

开源游戏引擎:创造无限可能 | 开源专题 No.56

godotengine/godot Stars: 62.6k License: MIT Godot Engine 是一个功能强大的跨平台游戏引擎,可用于创建 2D 和 3D 游戏。它提供了一套全面的常见工具,让用户可以专注于制作游戏而不必重复造轮子。该引擎支持将游戏一键导出到多个平台上,包…

阿里云服务器Valheim端口2456、2457和2458放行设置

使用阿里云服务器搭建Valheim英灵神殿需要开启2456-2458端口,阿里云服务器默认只开放了22核3389端口,开通2456端口是在安全组中配置的,阿里云服务器网aliyunfuwuqi.com来详细说下阿里云服务器安全组开通端口流程: 阿里云服务器安…

超简单|配图详细| 双系统Ubuntu22.04 系统磁盘扩容

文章目录 1. 打开磁盘工具2. 格式化空闲分区3. 挂载该分区4. 数据迁移与备份5. 卸载原分区6. 挂载新的/home分区7. 重启系统8. 删除原来的数据8.1 直接格式化分区8.2 没有单独的/home分区1. 查看设备名2. 重新挂载该分区3. 删除原始分区/home目录中的内容4. 卸载原分区5. 重启 …

项目初始化脚手架搭建

项目初始化脚手架搭建 仓库地址 easy-web: 一个快速初始化SpringBoot项目的脚手架 (gitee.com) 目前这个项目还是个单体项目,后续笔者有时间可能会改造成父子工程项目,将通用模块抽象出来,有兴趣的小伙伴也可以自行 CV 改造。 1、项目初始化…

嵌入式-stm32-基于HAL库的感应开关盖垃圾桶项目(开源)

嵌入式-stm32-感应开关盖垃圾桶项目(开源) 网盘资料 《嵌入式-stm32-基于HAL库的感应开关盖垃圾桶项目(开源)》 目录 一:项目概述 二:材料准备 三:细节分析(重点) 四&…

有详细一些的考研数学真题解析吗?

考研数学真题解析可以写得很详细,但是纸质资料可能受限于篇幅与排版等原因,没有把过程写得很详细。 但是,如果解析步骤不够详细的话,可能读者在看的时候就会因为其中某一个被省略的步骤而“卡壳”,进而需要花费很多额…

CAAC无人机操作证考证报名流程及白底证件照片制作方法

在这个无人机技术日新月异的时代,拥有一张CAAC民用无人机操作证不仅意味着你能够合法地在天空翱翔,也象征着你对飞行技术的尊重和对规章制度的遵守。如果你怀揣着成为无人机飞行员的梦想,那么,让我们一起揭开CAAC民用无人机操作证…

9.java——(杂例)组合,代理,向上转型static,fianl,关键字(有道云笔记复制粘贴,大家整体性的把握)

组合——内部有类(心中有对象!!!)(足球 和足球运动员梅西和脚下的足球一样) has和is的区别,has是组合,是有,持有的意思;is是继承,是…

Vue开发中使用Element UI过程中遇到的问题及解决方案Missing required prop: “value”

一、vue中使用el-table的typeindex有时不显示序号 Table 表格 用于展示多条结构类似的数据,可对数据进行排序、筛选、对比或其他自定义操作。 当el-table元素中注入data对象数组后,在el-table-column中用prop属性来对应对象中的键名即可填入数据&…

类加载器的分类

类加载器的任务就是把 java字节码文件内容 加载到 JVM 中去 分类 类加载器一般分为两类: 启动类加载器: 这个类加载器使用C实现 是虚拟机自身的一部分,启动类加载器加载的内容 包括java.lang.Object、java.lang.String等在内的Java核心类库。…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -小程序端TabBar搭建

锋哥原创的uniapp微信小程序投票系统实战: uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

从0开始python学习-40.通过正则表达式/json进行接口关联

目录 1. 正则表达式:使用re库(需安装-pip install re),只能提取字符串的数据。 1.1 re.seach:提取一个值,得到的是一个对象,通过下标group(1)取值,如果没有匹配到值则返回None 1.…

Vue3集成scss实现清除浏览器默认样式

1.首先去npm官网找到对应的reset.scss文件,复制内容在本地src下style建一个一模一样的文件,内容复制进去npm | Home 2.在style文件夹下再建一个index.scss文件,在它里边引入刚刚建好的reset.scss文件,如下 import ./reset.scss; …
最新文章