jvm启动参数整理

情到浓时终转凉″ 提交于 2019-11-29 23:24:40

1. 杂项

    -classpath your_dir : 指定目录,jvm将会默认加载该目录下的类

    -Djava.library.path=library_dir : 指定java的JNI相关文件dll的位置

    -server : jvm将会以server模式启动应用,启动较慢,性能较好

    -client : jvm将会以client模式启动应用,启动较快,性能较差

    -Dsun.rmi.transport.tcp.responseTimeout=20000 : 设定RMI请求超时时间

    -Dcom.sun.management.jmxremote : 支持远程通过jmx的方式监控应用资源

    -Dcom.sun.management.jmxremote.port=9999 : 远程RMI使用JMX时的监听端口

    -Dcom.sun.management.jmxremote.ssl=false : 远程RMI使用JMX时不使用SSL协议

    -Dcom.sun.management.jmxremote.authenticate=false : 远程RMI使用JMX时不需要验证信息

    -Djava.util.logging.config.file=properties_dir: 指定java自带的日志系统的配置文件

    -Djava.util.logging.manager=manager_package: 指定自带的日志管理系统的管理器

    -Dsun.rmi.dgc.client.gcInterval=3600000 : jvm默认会每小时调用一次system.gc(),通过该参数调整client模式下定时触发gc的时间间隔

    -Dsun.rmi.dgc.server.gcInterval=3600000 : 同上,server模式时的参数

    -Djava.endorsed.dirs=your_dir : 指定目录,在该目录下的libraries将会覆盖系统提供的libraries,部分系统API无法覆盖

    -Djava.awt.headless=true : 表明服务器在缺少键盘,鼠标,显示器等外设的情况下运作,涉及到图片处理相关功能的服务器一般需要增加该参数

    -Dorg.apache.catalina.SESSION_COOKIE_NAME : 指定tomcat识别session的key,默认为jsessionid,防止多应用下的session冲突

 

 

2. gc日志相关

    -verbose:gc : 输出jvm的gc的详细情况

    -XX:+PrintGCDetails : 记录GC运行时的详细数据信息,包括新生占用的内存大小及消耗时间

    -XX:+PrintGCTimeStamps : 打印GC的时间戳

    -Xloggc:filename : 指定GC数据的存储文件

    -XX:+UseGCLogFileRotation : 启用GC日志文件的自动转储

    -XX:GCLogFileSize=1m : 控制GC日志文件的大小

 

 

3. 堆相关

    -Xms2g : 设置Jvm堆的初始大小为2g

    -Xmx2g : 设置jvm堆的最大值为2g

    -Xmn1g : 设置年轻代大小为1g

    -Xss512k : 设置jvm线程栈大小为512k,默认1M

    -XX:PermSize=128m : 设定jvm持久代的初始值为128m,1.8后持久代被删除  

    -XX:MaxPermSize=128m : 设置持久代的最大值为128m,1.8后持久代被删除

    -XX:NewRatio=4 : 设置老年代和年轻代的比值为4 : 1,公式 X : 1

    -XX:SurvivorRatio=4 : 设置年轻代中两个 s 区与 e 区的比值,4代表两个 s 区和 e 区大小比值为 1 : 1 : 4,公式 1 : 1 : X

    -XX:MaxTenuringThreshold=0 : 设置对象在年轻代中的年龄,值为0时,对象不经过 s 区直接进入老年代,该参数只有在串行GC时才有效

    -XX:+DisableExplicitGC : 禁止代码显示调用system.gc()方法,使用该参数需要严格测试,特别是使用NIO的情况下,容易造成OOM,慎用

    -XX:+CollectGen0First : 执行FULL GC之前,是否先YGC,默认false

    -XX:PretenureSizeThreshold=1024 : 对象超过一定大小之后,直接分配在老年代,单位:字节

    -XX:+UseParallelGC : 使用并行垃圾收集器

    -XX:+UseParNewGC : 设置年轻代为并行收集

    -XX:+UseParallelOldGC : 设置老年代为并行收集

    -XX:ParallelGCThreads=123 : 并行收集器的线程数

    -XX:-UseConcMarkSweepGC : 使用并发标志扫描收集器

    -XX:-UseSerialGC : 使用串行垃圾收集器
   

    

  

    
 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!