名词解释
Serial:串行收集器,当进行垃圾收集时,会暂停所有线程
Parallel:并行收集器,是串行收集器的多线程版本,多CPU下
ParallelOld:老年代的Parallel版本
ConcMarkSweep:简称CMS,是并发收集器,将部分操作与用户线程并发执行
CMSIncrementalMode:CMS收集器变种,属增量式垃圾收集器,在并发标记和并发清理时交替运行垃圾收集器和用户线程
G1:面向服务器端应用的垃圾收集器,计划未来替代CMS收集器
调优参数
-server 使用服务器模式
-Xmx4g 最大分配4g内存
-Xms4g 初始化内存4g,减少内存动荡
-Xmn2g 高吞吐server,增大年轻代内存
-Xss128k 减小线程栈大小,使server生产出更多的线程
-XX:SurvivorRatio=30 增大eden与survivor的比值,使survivor更小,使对象更不容易进去到旧生代
-XX:PermSize=128m 持久代
-XX:MaxPermSize=256m 增大持久代
-XX:MaxTenuringThreshold=128 128岁的对象才可以进入到旧生代,增加新生代minor collection的机率
-XX:+UseParNewGC 年轻代采用并行收集策略,加快收集速度。
-XX:+UseConcMarkSweepGC 年老代采用CMS收集
-XX:CMSInitiatingOccupancyFraction=70 堆区占用到70%的时候,开始进行CMS
-XX:+UseCMSCompactAtFullCollection 对CMS采用压缩策略
-XX:CMSFullGCsBeforeCompaction=3 3次full gc 做一次碎片整理
-XX:+PrintGCDetails 打印GC详细日志
-XX:+PrintGCTimeStamps 打印GC 时间
-XX:+PrintGCApplicationConcurrentTime 打印gc过程 程序未中断时间
-XX:+PrintGCApplicationStoppedTime 打印gc过程中 程序中断的时间
-Xloggc:/opt/logs/service/gc.log_netty_saccount_web gc日志
总结
设置选项如下 -X部分,标准配置:
-Xmx 设置JVM的最大可用内存 如: -Xmx4096m -Xms 设置JVM的最小可用内存 如: -Xms4096m -Xmn 设置JVM的新生代大小 如: -Xmn2048m -Xss 设置每个线程的堆栈大小 如: -Xss128k
-XX 部分,非官方配置,但是也是安全的配置:
-XX:NewRatio 设置新生代和旧生代的比值 -XX:NewRatio=4 说明旧生代是新生代的四倍 -XX:SurvivorRatio 设置新生代中Eden和survivor(2个)的比值 如果设置-XX:SurvivorRatio=4 那么 Eden/一个survivor=4 也就是说总量是6.一般把此值设置为65536 这样可以是survivor大小设置为最小.提高性能. -XX:MaxPermSize 设置持久代的大小 -XX:MaxTenuringThreshold 设置垃圾的最大年龄,如果设置为0,那么新生代的对象不经过survivor,直接进入旧生代.如果设置较大,则新生代对象在survivor区域多次复制,对象在新生代被回收的几率变大.
关于回收器
回收器共有以下三种:
并行回收器的设置如下:
-XX:+UseParallelGC 设置新生代为并行回收 并且 -XX:ParallelGCThreads=20 并行回收线程数为20
-XX:+UseParallelOldGC 设置旧生代为并行回收
-XX:MaxGCPauseMillis=100 设置并行回收的最长时间
-XX:+UseAdaptiveSizePolicy 自动调整新生代大小和回收频率以满足回收时间
并发回收器的设置:
-XX:+UseConcMarkSweepGC 设置旧生代为并发回收
-XX:CMSFullGCsBeforeCompaction=5 并发回收会产生碎片,所以每隔几次回收就进行一次压缩
-XX:+UseCMSCompactAtFullCollection 使CMS也压缩,这样会影响性能,但是不会产生碎片了.
输出形式:[GC 118250K->113543K(130112K), 0.0094143 secs]
[Full GC 121376K->10414K(130112K), 0.0650971 secs]
输出形式:[GC [DefNew: 8614K->781K(9088K), 0.0123035 secs] 118250K->113543K(130112K), 0.0124633 secs]
[GC [DefNew: 8614K->8614K(9088K), 0.0000665 secs][Tenured: 112761K->10414K(121024K), 0.0433488 secs] 121376K->10414K(130112K), 0.0436268 secs]