参考: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区的大小比例
注意两个幸存区是一样大的
-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 启动脚本分析的更多相关文章

  1. HBase配置&启动脚本分析

    本文档基于hbase-0.96.1.1-cdh5.0.2,对HBase配置&启动脚本进行分析 date:2016/8/4 author:wangxl HBase配置&启动脚本分析 剔除 ...

  2. Spark配置&启动脚本分析

    本文档基于Spark2.0,对spark启动脚本进行分析. date:2016/8/3 author:wangxl Spark配置&启动脚本分析 我们主要关注3类文件,配置文件,启动脚本文件以 ...

  3. Hadoop启动脚本分析

    Hadoop启动脚本分析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 能看到这篇博客的你估计对Hadoop已经有一个系统的了解了,最起码各种搭建方式你应该是会的,不会也没有关系, ...

  4. 4. hadoop启动脚本分析

    4. hadoop启动脚本分析 1. hadoop的端口 ``` 50070 //namenode http port 50075 //datanode http port 50090 //2name ...

  5. busybox rootfs 启动脚本分析(二)

    上次分析了busybox的启动脚本,这次分析一下init.d中一些脚本的内容. 参考链接 http://www.cnblogs.com/helloworldtoyou/p/6169678.html h ...

  6. busybox rootfs 启动脚本分析(一)

    imx6文件系统启动脚本分析.开机运行/sbin/init,读取/etc/inittab文件,进行初始化. 参考链接 http://blog.163.com/wghbeyond@126/blog/st ...

  7. hadoop启动脚本分析及常见命令

    进程------------------ [hdfs]start-dfs.sh NameNode NN DataNode DN SecondaryNamenode 2NN [yarn]start-ya ...

  8. linux系统 initrd.img中init启动脚本分析

    概述:这篇文章主体内容来源于网上转载.前面几篇文章倾向于制作initrd.img,这篇文章更倾向于initrd.img的运行过程:加载framebuff驱动 ide驱动和文件系统驱动,最后进入到真正的 ...

  9. 内核启动文件系统后第一个执行的文件(inittab启动脚本分析)

    Linux 开机脚本启动顺序: 第一步:启动内核 第二步:执行init (配置文件/etc/inittab) 第三步:启动相应的脚本,执行inittab脚本,并且执行里面的脚本/etc/init.d ...

随机推荐

  1. Asp.net Web Api开发Help Page配置和扩展

    为了方面APP开发人员,服务端的接口都应当提供详尽的API说明.但每次有修改,既要维护代码,又要维护文档,一旦开发进度紧张,很容易导致代码与文档不一致. Web API有一个Help Page插件,可 ...

  2. No.0

    算法类 1.快速排序算法 2.树的非递归后序排序算法 3.希尔排序 4.冒泡排序 5.链表和链表转向 6.其他   设计模式 1.单例模式 2.工厂模式 3.抽象工厂模式 4.面向对象设计,ooa,o ...

  3. jenkins进行andriod打包,上传蒲公英

    环境:macos jenkins sdk gradle 1.构建操作注意: mac电脑上 选择invoke gradle task数值是:clean 2.再创建一个task 然后进行gradle加参数 ...

  4. ①---Java开发环境配置

    Java 开发环境配置 以下将为大家介绍如何搭建Java开发环境. window系统安装java 下载JDK 首先我们需要下载java开发工具包JDK,下载地址:http://www.oracle.c ...

  5. sqlplus编译失效对象

    原文整理自:http://www.51testing.com/?uid-16403-action-viewspace-itemid-98161:http://www.eygle.com/archive ...

  6. Settings-Sync插件源码阅读

    一.介绍 请参考官网: https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync 二.源码目录详解 Ima ...

  7. redis list 清空记录小技巧

    redis list 清空记录小技巧   redis中的list操作命令中删除指定key中的所有记录命令: ltrim key 1 0 即 ltrim key start end 中的start要比e ...

  8. P1865 A % B Problem

    (一道很水的题) (反正我第一眼看的时候也是这么想的) 题目背景 题目名称是吸引你点进来的 实际上该题还是很水的 题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接 ...

  9. 首页技术支持常见问题宽带外网IP显示为10、100、172开头,没有公网IP,如何解决?

    1.表现形式: 路由器拨号获得的公网IP变成了一个以100开头的IP(或者是10.172开头),而打开ip138.com查询却又是另外一个IP,将100开头的这个IP到百度去查询下则显示所在区域为美国 ...

  10. 修改构造器默认prototype后,新实例的constructor指向问题和解决办法

    Chrome中调试 源码: 构造器  function Dog(){this.tail=true} 构造新实例 var benji= new Dog(); var rusty=new Dog(); 新 ...