zoukankan      html  css  js  c++  java
  • spring 启动脚本分析

    参考:JVM 参数使用总结

    参考:java  -Xms -Xmx -XX:PermSize -XX:MaxPermSize

    参考:JVM调优总结 -Xms -Xmx -Xmn -Xss

    参考:JAVA(-Xms,Xmx,Xmn-XX:newSize,-XX:MaxnewSize,-XX:PermSize,-XX:MaxPermSize)区别

    登录服务器之后执行:

    sudo -iu sankuai;

    ps -ef |grep java

    结果为:

    [yinfuqing@dx-qcs-regulation-shanghai01 ~]$ sudo -iu sankuai
    [sankuai@dx-qcs-regulation-shanghai01 ~]$ jps
    29777 App
    674 Jps
    [sankuai@dx-qcs-regulation-shanghai01 ~]$ ps -ef|grep java
    sankuai    694   653  0 11:17 pts/0    00:00:00 grep java
    sankuai  29777  1185 10 Jan15 ?        02:33:26 /usr/local/java8/bin/java -server -Dfile.encoding=UTF-8 
    -Dsun.jnu.encoding=UTF-8 -Djava.io.tmpdir=/tmp -Djava.net.preferIPv6Addresses=false -Dcom.sun.management.jmxremote.port=25144
    -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
    -Xmx7g -Xms7g -Xss256k -Xmn512m
    -XX:SurvivorRatio=8 -XX:PermSize=256m -XX:MaxPermSize=256m
    -XX:+HeapDumpOnOutOfMemoryError -XX:ReservedCodeCacheSize=128m
    -XX:InitialCodeCacheSize=128m -XX:+DisableExplicitGC -XX:+PrintGCDetails -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution
    -XX:+UseConcMarkSweepGC -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:CMSFullGCsBeforeCompaction=0
    -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=80
    -Xloggc:/opt/meituan/logs/simple/com.sankuai.qcs.regulation.shanghai.gc.log
    -XX:ErrorFile=/opt/meituan/logs/simple/com.sankuai.qcs.regulation.shanghai.vmerr.log
    -XX:HeapDumpPath=/opt/meituan/logs/simple/com.sankuai.qcs.regulation.shanghai.heaperr.log
    -Dconfig.type=prod -Dapp.appkey=com.sankuai.qcs.regulation.shanghai
    -Djetty.appkey=com.sankuai.qcs.regulation.shanghai com.sankuai.qcs.regulation.shanghai.App

    这都是我们在:项目的:bin/run_main.sh中定义的,

    大体看一下:

    首先看一下参数的类别:

    参数分类
    1.标准参数
    功能和输出的参数都是很稳定的 在未来的JVM版本中不会改变 可以使用java -help检索出所有的标准参数
    2.X参数
    非标准化参数 在未来的版本可能会改变 所有的参数都用-X开始 可以使用java -X检索 但是注意没有-Xcomp
    3.XX参数
    非标准 很长一段时间不会列出来 用于JVM开发的debug和调优 

    -XX指的是debug或者调优的参数

    然后:

    参数简称 参数全称 表示含义  
    -Xms

    -XX:InitialHeapSize

    初始化堆的大小  
    -Xmx -XX:MaxHeapSize  设置堆的最大大小  
    -XX:newSize   表示新生代初始内存的大小  
    -XX:MaxnewSize   表示新生代可被分配的内存的最大上限  
    -Xmn 相当于同时设置:1、-XX:newSize:表示新生代初始内存的大小,应该小于-Xms的值;
    2、-XX:MaxnewSize:表示新生代可被分配的内存的最大上限;当然这个值应该小于-Xmx的值; 
    同时设置年轻代大小和年轻代的最大大小,

    至于这个参数则是对 -XX:newSize、-XX:MaxnewSize两个参数的同时配置,也就是说如果通过-Xmn来配置新生代的内存大小,那么-XX:newSize = -XX:MaxnewSize = -Xmn,虽然会很方便,但需要注意的是这个参数是在JDK1.4版本以后才使用的。 

     

    -XX:PermSize

      设置永久代的初始大小  

    -XX:MaxPermSize

      设置永久代的最大大小  
     

    -XX:NewRatio

    设置新生代和老生代的相对大小 
    优点是新生代大小会随着整个堆大小动态扩展 
    -XX:NewRatio=3[老生代/新生代=3]
     
     

    -XX:SurvivorRatio

     

    指定Eden区和Survivor区的大小比例
    注意两个幸存区是一样大的
    -XX:SurvivorRatio=10 表示Eden区占整个新生代的10/12 每个Survivor占1/12

    Survior区过大 虽然有足够的空间容纳GC后的幸存对象 但是Eden区药效会导致空间很快耗尽 增加新生代GC次数
    Survior区过小 没有足够的空间容纳GC后的幸存对象 使得对象都会移动到老生代 不方便回收
    ---------------------
    作者:heqianqiann
    来源:CSDN
    原文:https://blog.csdn.net/Thousa_Ho/article/details/77278656
    版权声明:本文为博主原创文章,转载请附上博文链接!

     
     

    -XX:+HeapDumpOnOutOfMemoryError

    使得JVM在产生内存溢出时自动生成堆内存快照  
      XX:HeapDumpPath=<path>  改变默认的堆内存快照生成路径,<path>可以是相对或者绝对路径  
     

    -XX:OnOutOfMemoryError

    当内存发生溢出时 执行一串指令  
    -Xss   设置每个线程的堆栈大小,DK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。  
           
  • 相关阅读:
    小学数学计算出题小程序(Excel版)
    网页自动化测试技术---SeleniumBasic(VBA网页外挂)
    ODBC链接数据源(PQ学习)
    WPF动态绑定矢量图标
    由数据转为树杈的js 和由一个子节点的id获取所有的父类的id
    面试上机题目--采用vue实现以下页面效果
    html前端上机面试题
    在vue项目中的跨域解决办法
    vue-quill-editor富文本编辑器使用
    vue项目eslint配置 以及 解释
  • 原文地址:https://www.cnblogs.com/aspirant/p/10276309.html
Copyright © 2011-2022 走看看