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
App
Jps
[sankuai@dx-qcs-regulation-shanghai01 ~]$ ps -ef|grep java
sankuai : pts/ :: grep java
sankuai Jan15 ? :: /usr/local/java8/bin/java -server -Dfile.encoding=UTF-
-Dsun.jnu.encoding=UTF- -Djava.io.tmpdir=/tmp -Djava.net.preferIPv6Addresses=false -Dcom.sun.management.jmxremote.port=
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
-Xmx7g -Xms7g -Xss256k -Xmn512m
-XX:SurvivorRatio= -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=
-XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=
-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区的大小比例 Survior区过大 虽然有足够的空间容纳GC后的幸存对象 但是Eden区药效会导致空间很快耗尽 增加新生代GC次数 |
||
-XX:+HeapDumpOnOutOfMemoryError |
使得JVM在产生内存溢出时自动生成堆内存快照 | ||
XX:HeapDumpPath=<path> |
改变默认的堆内存快照生成路径,<path>可以是相对或者绝对路径 |
||
-XX:OnOutOfMemoryError |
当内存发生溢出时 执行一串指令 | ||
| -Xss | 设置每个线程的堆栈大小,DK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。 | ||
spring 启动脚本分析的更多相关文章
- HBase配置&启动脚本分析
本文档基于hbase-0.96.1.1-cdh5.0.2,对HBase配置&启动脚本进行分析 date:2016/8/4 author:wangxl HBase配置&启动脚本分析 剔除 ...
- Spark配置&启动脚本分析
本文档基于Spark2.0,对spark启动脚本进行分析. date:2016/8/3 author:wangxl Spark配置&启动脚本分析 我们主要关注3类文件,配置文件,启动脚本文件以 ...
- Hadoop启动脚本分析
Hadoop启动脚本分析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 能看到这篇博客的你估计对Hadoop已经有一个系统的了解了,最起码各种搭建方式你应该是会的,不会也没有关系, ...
- 4. hadoop启动脚本分析
4. hadoop启动脚本分析 1. hadoop的端口 ``` 50070 //namenode http port 50075 //datanode http port 50090 //2name ...
- busybox rootfs 启动脚本分析(二)
上次分析了busybox的启动脚本,这次分析一下init.d中一些脚本的内容. 参考链接 http://www.cnblogs.com/helloworldtoyou/p/6169678.html h ...
- busybox rootfs 启动脚本分析(一)
imx6文件系统启动脚本分析.开机运行/sbin/init,读取/etc/inittab文件,进行初始化. 参考链接 http://blog.163.com/wghbeyond@126/blog/st ...
- hadoop启动脚本分析及常见命令
进程------------------ [hdfs]start-dfs.sh NameNode NN DataNode DN SecondaryNamenode 2NN [yarn]start-ya ...
- linux系统 initrd.img中init启动脚本分析
概述:这篇文章主体内容来源于网上转载.前面几篇文章倾向于制作initrd.img,这篇文章更倾向于initrd.img的运行过程:加载framebuff驱动 ide驱动和文件系统驱动,最后进入到真正的 ...
- 内核启动文件系统后第一个执行的文件(inittab启动脚本分析)
Linux 开机脚本启动顺序: 第一步:启动内核 第二步:执行init (配置文件/etc/inittab) 第三步:启动相应的脚本,执行inittab脚本,并且执行里面的脚本/etc/init.d ...
随机推荐
- 机器学习算法总结(十二)——流形学习(Manifold Learning)
1.什么是流形 流形学习的观点:认为我们所能观察到的数据实际上是由一个低维流行映射到高维空间的.由于数据内部特征的限制,一些高维中的数据会产生维度上的冗余,实际上这些数据只要比较低的维度就能唯一的表示 ...
- Oracle调整顾问(SQL Tuning Advisor 与 SQL Access Advisor
在Oracle数据库出现性能问题时,使用Oracle本身的工具包,给出合理的调优建议是比较省力的做法. tuning advisor 是对输入的sql set的执行计划进行优化accsee advis ...
- DAO层基础设计原理
在实际的开发中有一种项目的程序组织架构方案叫做MVC模式,按照程序 的功能将他们分成三个层,如下图 Modle层(模型层).View层(显示层).Controller层(控制层). Modle层:可以 ...
- openjdk8源码编译
1. 安装源码管理工具 yum install mercurial 2. 下载源码 hg clone http://hg.openjdk.java.net/jdk8u/jdk8u jdk8u #执行源 ...
- Redis学习之底层链表源码分析
Redis底层链表的源码分析: 一.链表结点的结构(单个结点): // listNode 双端链表节点 typedef struct listNode { // 前置节点 struct listNod ...
- element-ui中 table表格hover 修改背景色
增加样式级别就行啦 .el-table--enable-row-hover .el-table__body tr:hover>td{ background-color: #212e3e !i ...
- SpringMVC自动封装List对象 —— 自定义参数解析器
前台传递的参数为集合对象时,后台Controller希望用一个List集合接收数据. 原生SpringMVC是不支持,Controller参数定义为List类型时,接收参数会报如下错误: org.sp ...
- Linux、Windows如何进行性能监控与调优
1.Linux命令行工具 推荐:CentOS 7 1.1 top命令 top命令的输出如下: top命令的输出可以分为两部分:前半部分是系统统计信息,后半部分是进程信息.在统计信息中, 第1行是任务队 ...
- python--map()、reduce()
map()和reduce()是一种在处理大数据时的重要思想,在平时也可以利用.在python中内置了这两个方法,map取映射的意思,reduce取归纳的意思. 一.map() map(func, ls ...
- WebApi集成Swagger
1.新建一个WebApi空项目 2.新建一个Person实体类: public class Person { public int ID { get; set; } public string Use ...