jvm的gc算法以及tomcat的gc配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chushoutaizhong/article/details/81908316

其中常用回收组合

  新生代GC策略 年老代GC策略 说明
组合1 Serial Serial Old

Serial和Serial Old都是单线程进行GC,特点就是GC时暂停所有应用线程。

组合2 Serial CMS+Serial Old CMS(Concurrent Mark Sweep)是并发GC,实现GC线程和应用线程并发工作,不需要暂停所有应用线程。另外,当CMS进行GC失败时,会自动使用Serial Old策略进行GC。
组合3

ParNew

CMS

使用-XX:+UseParNewGC选项来开启。ParNew是Serial的并行版本,可以指定GC线程数,默认GC线程数为CPU的数量。可以使用-XX:ParallelGCThreads选项指定GC的线程数。

如果指定了选项-XX:+UseConcMarkSweepGC选项,则新生代默认使用ParNew GC策略。

组合4

ParNew

Serial Old 使用-XX:+UseParNewGC选项来开启。新生代使用ParNew GC策略,年老代默认使用Serial Old GC策略。
组合5

Parallel Scavenge

Serial Old

Parallel Scavenge策略主要是关注一个可控的吞吐量:应用程序运行时间 / (应用程序运行时间 + GC时间),可见这会使得CPU的利用率尽可能的高,适用于后台持久运行的应用程序,而不适用于交互较多的应用程序。

组合6

Parallel Scavenge

Parallel Old

Parallel Old是Serial Old的并行版本

组合7

G1GC

G1GC

-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC        #开启
-XX:MaxGCPauseMillis =50                  #暂停时间目标
-XX:GCPauseIntervalMillis =200          #暂停间隔目标
-XX:+G1YoungGenSize=512m            #年轻代大小
-XX:SurvivorRatio=6                            #幸存区比例

JAVA_OPTS="-server -Xms100m -Xmx100m -XX:PermSize=600m -XX:MaxPermSize=600m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/XXX/testdump -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:ParallelGCThreads=4 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/home/liuhua/tomcat_gc.log -Dcom.sun.management.jmxremote -Dfile.encoding=utf-8"

以上使用的 组合3  jdk7和tomcat7使用以上配置  建议

JAVA_OPTS="-server -Xms100m -Xmx100m -XX:PermSize=600m -XX:MaxPermSize=600m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/XXX/testdump -XX:+UseG1GC -XX:MaxGCPauseMillis=300 -XX:ParallelGCThreads=4 -XX:ConcGCThreads=4 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/home/liuhua/tomcat_gc.log -Dcom.sun.management.jmxremote -Dfile.encoding=utf-8"

以上是 组合7 jdk8和tomcat9使用以上配置 建议

其中g1日志的说明 参考https://blog.csdn.net/weitry/article/details/53170138

JVM GC参数配置说明 参考https://blog.csdn.net/jenny_sun1989/article/details/40785897

JVM 之 ParNew 和 CMS 日志分析 参考 http://ju.outofmemory.cn/entry/363883

JVM参数设置、分析 参考https://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html

ES(Elasticsearch)的JVM配置 参考https://blog.csdn.net/u013673976/article/details/73549924

GC算法 垃圾收集器 参考http://www.ityouknow.com/jvm/2017/08/29/GC-garbage-collection.html

猜你喜欢

转载自blog.csdn.net/chushoutaizhong/article/details/81908316