码迷,mamicode.com
首页 > 编程语言 > 详细

spring 启动脚本分析

时间:2019-01-16 13:11:27      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:vivo   ipv6   lse   csdn   simple   登录   false   run   hang   

参考: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左右。  
       

spring 启动脚本分析

标签:vivo   ipv6   lse   csdn   simple   登录   false   run   hang   

原文地址:https://www.cnblogs.com/aspirant/p/10276309.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!