JVM参数

刚维护我们web系统,统计下JVM 参数设置情况。

 参数  描述
-server
JVM server 模式,会开启默认的配置
 
-Xmx5500m 
 堆内存最大5500M
 
-Xms5500m 
 堆内存最小5500M
 
-Xmn2500m 
 新生代2500M
 
-XX:PermSize=512m 
 Permgen取默认512M
 
-XX:MaxPermSize=512m  
 Permgen最大512M
 
-XX:+DisableExplicitGC 
 关掉System.gc()
 
-XX:+UseParNewGC 
 新生代垃圾回收算法(stop-the-world)
 
-XX:+UseConcMarkSweepGC 
 设置老年代垃圾回收算法CMS
 
-XX:+CMSParallelRemarkEnabled 
 开启CMS并行标记
 
-XX:+UseCMSCompactAtFullCollection 

 在CMS Full GC时压缩内存,CMS是不会移动内存的,不采用压缩会产生很多碎片

 
-XX:+UseFastAccessorMethods 
 原始类型快速优化
 
-XX:+UseCMSInitiatingOccupancyOnly
  仅仅使用手动定义初始化定义开始CMS收集
 
-XX:+UseCompressedOops 
 启用压缩指针,在32GB内存下,不需要64bit来表示一个对象引用,压缩为32bit
 
-XX:-ReduceInitialCardMarks 
 取消Card-Marking 优化,在6u18版本下,大对象young gc 会导致jvm Crash
 
-XX:ReservedCodeCacheSize=128M
 设置CodeCache 内存大小
 
-XX:+HeapDumpOnOutOfMemoryError 
 在OOM时dump
 
-XX:HeapDumpPath=/home/admin
 dump路径
   




有关CMS的介绍
值得注意的是,老年代使用CMS, 新生代使用 UseParNewGC 比使用UseParallelGC ,在young gc 会使停顿时间变长。因为使用UseParNewGC young gc时,从新生代转移对象到老年代会使用Best-fit 算法,而UseParallelGC不需要。
UseFastAccessorMethods 会对JVM认为的Accessor Methods 采用快速版本的优化,但是这些Methods没有调用计数,因此无法被JIT 编译成Native code,始终会解释执行,性能有可能反而变慢。参考jdk bug
ReservedCodeCacheSize 是CacheCode 大小,参考之前的文章。

还有一些参数:

-XX:MaxTenuringThreshold=n 设置老年代阈值,默认15
XX:+PrintTenuringDistribution 判断具体年龄分布











posted @ 2015-08-28 14:20  rsdyxjh  阅读(490)  评论(0)    收藏  举报