详细解决方案
JVM瓶颈定位
热度:94 发布时间:2024-02-10 17:09:25.0
JVM配置
- 基础知识:
静态分配:静态分配
动态分配
- 配置步骤:
1、在Tomcat/bin/catalina.sh里面添加JAVA_OPTS=
2、 堆栈结构图:
heap堆:新生代 -Xmn eden区 总结:1、-Xmn=Eden+S0+S1
S0区 2、新生代三个区的分配方法
S1区 A:在java_OPTS后追加 -xx:SurvivoRatio=xx 设置比例
老年代 -Xmx减Xmn B:不设置默认 -XX:SurvivorRatio
注:建议使用默认
概念解读:
-Xms=500m 堆初始化时启动的内存,剩余物理内存的1/64
-Xmx=500m 整个堆最大的内存,剩余物理内存的1/4
-Xmn=200m 新生代3/8
总结:
1、jvm内存是从物理内存借用的,Tomcat启动成功即jvm从物理内存分配内存内存也成功
2、-Xmx和-Xms设置一样
理由:-Xms默认是物理内存的1/64,内存值较小,当大并发流量增大,new的数据较多,会出现-Xms内存不够用的情况,此时还需临时向物理内存申请借用,借用时会遇到以下两种情况
情况1:物理内存已无过多空闲内存,则借用不到内存,造成java程序new数据无地方存储
情况2:从物理内存借用到内存,但此时java程序在等待,消耗时间
故 -Xmx和-Xms设置一样
- 待完善