Tomcat10——JVM内存参数配置
最常见的JVM配置当属内存分配,因为在绝大多数情况下,JVM默认分配的内存可能不能够满足我们的需求,特别是在生产环境,此时需要手动修改tomcat启动时的内存参数分配。
1. JVM内存模型
我们在进行内存参数配置主要是围绕着堆内存来进行操作。
2. JVM配置选项
Windows平台(catalina.bat)
set JAVA_OPTS=-server -Xms2048m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:SurvivorRatio=8
LInux平台(catalina.sh)
set JAVA_OPTS="-server -Xms1024m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:SurvivorRatio=8"
注意:我们在设置的时候,一般将Xms(初始堆内存)与Xmx(最大堆内存)设置为一样大,这样JVM在运行期间不会开辟内存空间,这样可以提升一点性能。
参数说明:
参数 | 含义 |
-server | 表示当前以服务端的形式运行 |
-Xms | 堆内存的初始大小 |
-Xmx | 堆内存的最大内存 |
-Xmn | 新生代内存大小,官方建议是整个堆的3/8 |
-XX:MetaspaceSize | 元空间内存初始大小,在JDK1.8版本之前配置为 -XX:PermSize(永久代) |
XX:MaxMetaspaceSize | 元空间内存的最大大小,在JDK1.8版本之前配置为 -XX:MaxPermSize(永久代) |
-XX:InitialCodeCacheSize -XX:ReservedCodeCacheSize |
代码缓存区大小 |
-XX:NewRatio |
设置新生代和老年代的相对大小比例,这种方式的优点是新生代大小会随着整个堆大小动态 扩展。 例如:-XX:NewRatio=3 指定 老年代/新生代 = 3/1 。老年代占堆大小的3/4 新生代占 1/4 |
-XX:SurvivorRatio |
指定伊甸园区(Eden)与幸存区(To)大小比例。 例如:-XX:SurvivorRatio=10 表示Eden是To大小的10倍(也是幸存区From的10倍)。 所以Eden占新生代大小的10/12 ,幸存区From和幸存区To每个占新生代的1/12. 注意:两个幸存区永远是一样大 |
打开tomcat的bin/catalina.bat,将我们的配置信息配置在其中,如图:
保存,重启服务器,在浏览器输入网址,如图:
点击Manager APP或者直接输入网址http://localhost:8080/manager/html,如图:
点击Server Status,如图:
可以看出,堆内存Heap memory的值之和(546.5+1365.5+68x2)就是我们设置的2048
注意:网页上显示的PS Survivor Space只是幸存区的一半,因为幸存区由两部分组成(From和To,大小一样),所以需要乘以2
Tomcat10——JVM内存参数配置相关推荐
- jvm内存参数配置_“步步精心”-常用JVM配置参数
本文主要内容: Trace跟踪参数 堆的分配参数 栈的分配参数 零.在IDE的后台打印GC日志: 既然学习JVM,阅读GC日志是处理Java虚拟机内存问题的基础技能,它只是一些人为确定的规则,没有太多 ...
- jvm内存参数配置_idea中设置JVM参数,简单理解JVM常见参数,JVM调优简单入门
前面学习了JVM的内存分布,今天就来验证下.顺便通过测试学习一下JVM的几个参数,不过测试是在idea中,所以先要在idea上设置JVM参数. 一.idea设置全局的JVM参数 一共三步,第一步在菜单 ...
- jvm内存参数配置_JVM内存结构和Java内存模型
一.JVM 首先看一张JVM结构图(某度找的) 主要看运行时数据区,里边有方法区,堆,java虚拟机栈,本地方法栈,程序计数器.其中方法区和堆是线程共享的,也是JVM进行垃圾收集的区域,java虚拟机 ...
- JVM内存参数详解以及配置调优
基本概念: PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域 ...
- java jvm 内存参数_深入详解JVM内存模型与JVM参数详细配置
对于大多数应用来说,Java 堆(Java Heap)是Java 虚拟机所管理的内存中最大的一块.Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建. JVM内存结构 由上图可以清楚的看到 ...
- JVM常用内存参数配置
一. 常用参数 -Xms JVM启动时申请的初始Heap值,默认为操作系统物理内存的1/64但小于1G.默认当空余堆内存大于70%时,JVM会减小heap的大小到-Xms指定的大小,可通过-XX ...
- Java架构学习(十二)java内存结构新生代老年代JVM参数调优堆内存参数配置解决堆栈溢出
JVM参数调优与垃圾回收机制 一.java内存结构 Java内存模型:是多线程里面的,jmm与线程可见性有关 Java内存结构:是JVM虚拟机存储空间. Java内存结构图 Java内存机构分为:方法 ...
- JVM:JVM常见参数配置
JVM常见参数配置 JVM的参数类型: 1.标配参数:-version,-help,-showversion 2.x参数(了解):-Xint:解释执行:-Xcomp:第一次使用就编译成本地代码:-Xm ...
- Docker 容器 jvm 内存参数调整优化
前言 在使用Docker部署java 项目时,发现容器占用内存很高,导致服务器内存压力大,一个简单的boot项目,占用达到1G多内存,有些容器甚至达到快3G内存,并且发现java -jar 启动的项目 ...
最新文章
- java多线程(三)
- vue的$nextTick使用总结,this.$refs为undefined的解决办法,element Ui的树形控件setCheckedKeys方法无法使用
- 哈佛最新成果:温度高于25℃可降低新冠病毒传染率,但不足以完全控制疫情...
- torch.max和torch.softmax
- autocad2014 第二次打开闪退_cad2014闪退的原因和解决方法
- python中join的用法
- plsql(轻量版)_记录类型2
- 金哥和你一起学模型压缩——结构篇
- 基于QItemDelegate的例子1 SpinBoxDelegate
- Exchange服务器系统蓝屏及脱域后解决办法
- 2019语言与智能技术竞赛
- python用cartopy包画地图_python – 使用Cartopy在地图上显示图像时的投影问题
- Web应用程序测试工具Top20
- MIMIC-IV v2.0数据库
- vue:hadoop@1.0.0 dev: `webpack-dev-server --inline --progress --config build/webpack.dev.conf.js
- 中文文字检测与识别的评测方法
- QT制作360悬浮球
- IP组播协议——IGMP协议之IGMPv1
- java中 复制到下一行_java代码复制到下一行
- DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution论文学习