当前位置: 代码迷 >> 综合 >> JVM瓶颈定位
  详细解决方案

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设置一样
  • 待完善
  相关解决方案