JVM瓶颈定位

JVM配置

  • 基础知识:
    静态分配:静态分配
    动态分配
  • 配置步骤:在Tomcat/bin/catalina.sh里面添加JAVA_OPTS=' -server -Xmx500M -Xms500M -Xmn200M -XX:MaxPerm Size=128 -XX:PermSize=128'
  • 堆栈结构图:
               
  • heap堆:新生代  -Xmn    eden区    总结:1、-Xmn=Eden+S0+S1=200
                                                           S0区               2、新生代三个区的分配方法
                                                           S1区                  A:在java_OPTS后追加 -xx:SurvivoRatio=xx 设置比例
                              老年代  -Xmx减Xmn                       B:不设置默认 -XX:SurvivorRatio=8

                                                                      注:建议使用默认
概念解读:
-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设置一样

  • 堆栈结构图:

  • -XX:PermSize=128m  栈初始化内存    是剩余物理内存的1/64
    -XX:MaxPermSize=128 栈最大内存     是剩余物理内存的1/4
    总结:-XX:PermSize = -XX:MaxPermSize
    理由:-XX:MaxPermSize 默认值是物理内存的1/64,内存值较小,当大并发流量增大,new的数据较多,对象引用值也多,会出现-XX:MaxPermSize内存不够用的情况,此时还需临时向物理内存申请借用,借用时会出现两种情况
    情况:
    1、物理内存已无过多的空闲内存,则借不到内存,造成java程序对象引用不到地方存储
    2、从物理内存借用到内存,但此时java程序在等待,消耗时间
  • JVM配置步骤
    1、Tomcat若自动启则:
        ①、jps或netstat -ntlp | grep port 或ps -ef | prep java  》 得到java pid
        ②、kill -9 pid
    2、vim Tomcat/bin/catalina.sh
    3、jvm配置
    4、tomcat/bin/目录下执行   sh.startup.sh
  • 待完善 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

村东头老杨

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值