jvm 堆 比例_JVM调优原则
JVM调优原则
调优目标
将进入老年代的对象数量降到最低
减少 Full GC 的执行时间
在同样场景下,采用多个机器上进行参数调整后的比较验证,将验证能够提高性能的参数应用到最终所有服务器上。
一般常规
满足下列不需要优化
Minor GC执行时间不到50ms;
Minor GC执行不频繁,约10秒一次;
Full GC执行时间不到1s;
Full GC执行频率不算频繁,不低于10分钟1次;
基本思想
针对JVM堆的设置
一般可以通过-Xms -Xmx限定其最小、最大值,为了防止垃圾收集器在最小、最大之间收缩堆而产生额外的时间,通常把最大、最小设置为相同的值;
年轻代和年老代
根据默认的比例(1:2)分配堆内存, 可以通过调整二者之间的比率NewRadio来调整二者之间的大小。
如年轻代,通过 -XX:newSize -XX:MaxNewSize来设置其绝对大小。同样,为了防止年轻代的堆收缩,我们通常会把-XX:newSize -XX:MaxNewSize设置为同样大小。
年轻代和年老代设置多大才参考:
更大的年轻代必然导致更小的年老代,大的年轻代会延长普通GC的周期,但会增加每次GC的时间,小的年老代会导致更频繁的Full GC。
更小的年轻代必然导致更大年老代,小的年轻代会导致普通GC很频繁,但每次的GC时间会更短,大的年老代会减少Full GC的频率。
如何选择应该依赖应用程序对象生命周期的分布情况:如果应用存在大量的临时对象,应该选择更大的年轻代;如果存在相对较多的持久对象,年老代应该适当增大。但很多应用都没有这样明显的特性。
在抉择时应该根据以下两点:
本着Full GC尽量少的原则,让年老代尽量缓存常用对象,JVM的默认比例1:2也是这个道理 。
通过观察应用一段时间,看其他在峰值时年老代会占多少内存,在不影响Full GC的前提下,根据实际情况加大年轻代,比如可以把比例控制在1:1。但应该给年老代至少预留1/3的增长空间。
配置较好的机器
比如多核、大内存机器,可以为年老代选择并行收集算法:-XX:+UseParallelOldGC 。
线程堆栈的设置
每个线程默认会开启1M的堆栈,用于存放栈帧、调用参数、局部变量等,对大多数应用而言这个默认值太了,一般256K就足用。
理论上,在内存不变的情况下,减少每个线程的堆栈,可以产生更多的线程,但这实际上还受限于操作系统。
如果你觉得文章不错,文末的赞 ? 又回来啦,记得给我「点赞」和「在看」哦~
jvm 堆 比例_JVM调优原则相关推荐
- JVM内存调优原则及几种JVM内存调优方法
JVM内存调优原则及几种JVM内存调优方法 1.堆大小设置. 2.回收器选择. 1.在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因 ...
- JVM之堆Heap参数调优入门
JVM之堆Heap参数调优入门 目录: JVM体系结构概览 JVM之堆Heap参数调优入门 2.1 java7和 java8堆结构图 2.2 堆内存调优简介 1. JVM体系结构概览 2. JVM之堆 ...
- jvm原理及性能调优系列(jvm调优)
jvm原理及性能调优系列(jvm调优) JVM设置: 1.设置合适的最大堆内存(新生代和老生代的最大和值)和最小堆内存(jvm启动时占用的操作系统内存大小),及设置好堆的比例分配. 2.设置合适的新生 ...
- JVM整体架构与调优参数说明
本文来说下JVM整体架构与调优参数说明 文章目录 概述 JVM的分类 JVM的构成 方法区(元空间) 堆 栈 本地方法栈 程序计数器 JVM调优参数 本文小结 概述 很多小伙伴都认为JVM的知识很难, ...
- JVM原理讲解和调优
一.什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现 ...
- JVM原理及性能调优
注明:转载文章.好记性不如烂笔头呀~ 一.什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际 ...
- 史上最全JVM整体架构和调优参数说明,带你彻底理解JVM整体架构与调优技巧
大家好,我是冰河~~ 从今天开始,我们正式开始<架构师进阶系列>技术文的更新,在<架构师进阶系列>中,我们首先一起来探讨有关JVM的知识. 很多小伙伴都认为JVM的知识很难,很 ...
- JVM常用参数以及调优实践
JVM常用参数选项 jvm 可配置的参数选项可以参考 Oracle 官方网站给出的相关信息:http://www.oracle.com/technetwork/java/javase/tech/vmo ...
- 深入理解JVM虚拟机10:JVM常用参数以及调优实践
本文转自[JVM常用参数以及调优实践](https://blog.csdn.net/a724888/article/details/78367780) JVM常用参数选项 jvm 可配置的参数选项可以 ...
最新文章
- OpenCV_图像平滑
- 动态调试android, ddmsida
- java小数强制转换,Java中的强制类型转换 大数转小数
- 7、play中的文件上传
- JS 对象(Object)和字符串(String)互转
- ☆用Python实现ACM各大输入输出格式
- thinkphp-page
- 1.Docket 安装简介
- Ubuntu上安装gcc
- python银行管理系统框架_基于Python的网上银行综合管理系统的设计与实现
- HTML5 高频面试题!!!
- 写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。
- 公网Kamailio 代理 freeswitch 和做 sbc
- 方舟原始恐惧mod生物代码_《暗黑地牢》《方块方舟》周末免费试玩,多款游戏历史新低特惠...
- 元宇宙:从现实到虚无祛魅的产物|广州华锐互动
- 7 轮面试后,还是挂了 | Google 中国面经分享
- 中文字号和磅数的联系
- 秋招面试题系列- - -Java工程师(十一)
- OpenCV - C++ -图像处理 //使用
- Oracle EBS专业术语与名词解释