jvm基本参数配置

原文转载: https://yq.aliyun.com/articles/691713

 

JVM参数配置
-server C2引擎执行
-Xms20g 最小堆内存20G
-Xmx20g 最大堆内存20G
-Xmn8g 新生代8G
-XX:PermSize=256m Perm大小256MB
-XX:MaxPermSize=256m Perm大小256MB
-XX:SurvivorRatio=10 YoungGC 3个区的比例
-XX:+UseConcMarkSweepGC Old区使用CMS GC
-XX:+UseCMSCompactAtFullCollection 一旦触发FullGC对Old区进行压缩减少内存碎片
-XX:CMSMaxAbortablePrecleanTime=5000 CMS GC的回收超时时间,避免GC时间太久
-XX:+CMSClassUnloadingEnabled 支持CMS GC时对Perm区的Class和ClassLoader做GC,否则要等FullGC
-XX:CMSInitiatingOccupancyFraction=80 Old区达到80%时触发CMS GC,如果不设置,JVM会自适应,效果不好
-XX:+UseCMSInitiatingOccupancyOnly 只以CMSInitiatingOccupancyFraction设定的阈值为准,不加这个参数CMSInitiatingOccupancyFraction会不生效
-XX:+HeapDumpOnOutOfMemoryError OOM时自动jmap dump内存
-XX:HeapDumpPath= OOM时dump内存的位置
-Xloggc: GC log位置
-XX:+PrintGCDetails 打印GC详细信息
-XX:+PrintGCDateStamps 将GC时间由时间戳改为人类可识别的时刻点
-Dsun.net.client.defaultConnectTimeout=10000 socket连接超时时间
-Dsun.net.client.defaultReadTimeout=30000 socket读超时时间
-verbose:class 打印类加载信息
-XX:MaxDirectMemorySize=1g 控制DirectByteBuffer占用的堆外内存大小,防止堆外内存导致OOM
-XX:+ExplicitGCInvokesConcurrent 调用System.gc()时触发CMS GC而不是Full GC
-XX:ParallelGCThreads=${CPU_COUNT} 并发GC线程数(Young GC)
-Dfile.encoding=${JAVA_FILE_ENCODING} 文件默认编码

你可能感兴趣的:(jvm基本参数配置)