-
gc log
参数说明备注-Xloggc:gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps
-XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution日志内容 -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=8 -XX:GCLogFileSize=128K
日志切割 Oracle Java 1.6_34 (or 1.7_2 in the latest minor version) -
heap memory
参数 说明 8G内存 虚拟机 推荐配置 16G内存 虚拟机 推荐配置 备注 -Xmx 最大堆内存大小 4g 12g 更大的堆容易引起SWAP, 使用堆外内存多(NIO等) 需要重新评估 -Xms 初始化堆内存大小 4g 12g -Xmn 新生代区大小 2g
6g 有local cache需要再评估 -XX:PermSize 永久代大小 128m -XX:MaxPermSize 最大永久代大小 512m -XX:NewRatio Old size / Young size 不配置,已配置-Xmn使得该参数失效 -XX:SurvivorRatio Eden size / Survivor size 不配置,使用默认值8即可。 -
garbage collector
因为是在线服务,一般推荐使用CMS垃圾回收器。
参数说明推荐配置-XX:+UseConcMarkSweepGC 并发标记-整理垃圾回收器 开启 -XX:CMSInitiatingOccupancyFraction 初始化FullGC触发时Old区的使用率 70 -XX:+UseCMSInitiatingOccupancyOnly 一直使用初始化的Old区的使用率(不自动平衡)触发FullGC 开启 -XX:+UseCMSCompactAtFullCollection FullGC后对old区内存碎片进行整理 开启 -XX:+CMSClassUnloadingEnabled 对永久代进行gc,防止永久代oom 开启 -XX:+ExplicitGCInvokesConcurrent 调用System.gc时使用普通FullGC不StopTheWorld 开启 -XX:+DisableExplicitGC 禁用System.gc 关闭 -XX:MaxTenuringThreshold 对象在survivor区的存活次数 YoungGC时间过长或 使用Local Cache时, 该参数可能需要具体调优 -
编译优化
参数说明推荐配置-XX:+TieredCompilation 多层编译,作用是提高vm的启动速度 开启 -XX:CICompilerCount 优化编译的线程数 4 (或者CPU核心数) -
其他参数
参数说明推荐配置-Xss 线程栈大小,jdk7默认1m 线程多(大于500)场景推荐使用 128k 其他参数使用jvm默认值可
jvm配置
最新推荐文章于 2024-05-27 11:20:19 发布