jvm参数调优

Posted gavinwu-blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jvm参数调优相关的知识,希望对你有一定的参考价值。

参数 描述
-server server模式,性能更好
-Xmx3g 堆最大内存
-Xms3g 堆最小内存
-Xmn1g -XX:newSize = -XX:MaxnewSize = -Xmn
-XX:+HeapDumpOnOutOfMemoryError 堆内存溢出时,保存内存快照
-XX:HeapDumpPath=/home/dir 堆的dump文件路径
-XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)
-XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)
-XX:+PrintGCDetails gc详细日志
-XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信息
-Xloggc:/home/dir/gc.log gc日志文件路径
-XX:+UseConcMarkSweepGC 设置年老代为并发收集
-XX:+UseCMSInitiatingOccupancyOnly 命令JVM不基于运行时收集的数据来启动CMS垃圾收集周期。而是,当该标志被开启时,JVM通过CMSInitiatingOccupancyFraction的值进行每一次CMS收集
-XX:CMSInitiatingOccupancyFraction=70 是指设定CMS在对内存占用率达到70%的时候开始GC(因为CMS会有浮动垃圾,所以一般都较早启动GC);
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses 降低full gc的停机时间
-XX:+CMSClassUnloadingEnabled 允许对类进行卸载
-XX:+ParallelRefProcEnabled 并行的处理Reference对象,如WeakReference,除非在GC log里出现Reference处理时间较长的日志,否则效果不会很明显。
-XX:+CMSScavengeBeforeRemark 开启在CMS重新标记阶段之前的清除尝试
-XX:+FlightRecorder 飞行记录器
-Dcom.sun.management.jmxremote 开启远程访问
-Dcom.sun.management.jmxremote.port=38080 远程访问端口
-Dcom.sun.management.jmxremote.authenticate=false 禁止认证
-Dcom.sun.management.jmxremote.ssl=false 禁止ssl

方便copy:

JAVA_OPTS="-server -Xmx2g -Xms2g -Xmn1g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/dir -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintHeapAtGC -Xloggc:/home/dir/gc.log -XX:+UseConcMarkSweepGC -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:+CMSClassUnloadingEnabled -XX:+ParallelRefProcEnabled -XX:+CMSScavengeBeforeRemark  -XX:+FlightRecorder -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=38080 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

以上是关于jvm参数调优的主要内容,如果未能解决你的问题,请参考以下文章

JVM参数调优详解

JVM参数调优详解

JVM常用调优参数 ——JVM篇

JVM调优常用参数配置

JVM调优参数方法工具以及案例总结

「JVM」调优参数总结