Java 如何在Tomcat中设置自定义垃圾收集器算法

Java 如何在Tomcat中设置自定义垃圾收集器算法,java,garbage-collection,tomcat8,Java,Garbage Collection,Tomcat8,我想为运行在tomcat之上的java应用程序[war]设置一个自定义垃圾收集器算法。我使用的是java8,默认的垃圾收集器是parallelGC。我想用G1GC或CMS GC代替这个 java -XX:+UseG1GC -jar Application.java 可以使用上述命令执行Jar应用程序。 但是我想知道我们如何在tomcat/中用war应用程序配置它?我想你可以在variables.conf文件中这样做,在那里你可以像这样添加它: -XX:+UseG1GC 找到答案后,我会将其张

我想为运行在tomcat之上的java应用程序[war]设置一个自定义垃圾收集器算法。我使用的是java8,默认的垃圾收集器是parallelGC。我想用G1GC或CMS GC代替这个

java -XX:+UseG1GC -jar Application.java
可以使用上述命令执行Jar应用程序。
但是我想知道我们如何在tomcat/中用war应用程序配置它?

我想你可以在variables.conf文件中这样做,在那里你可以像这样添加它:

-XX:+UseG1GC

找到答案后,我会将其张贴在这里供社区使用

当我们需要为tomcat设置自定义GC时,我们可以将GC类型作为参数传递给CATALINA_OPTS env变量

export CATALINA_OPTS = "-XX:+UseG1GC"
您可以在setenv.sh文件(tomcat/bin/setenv.sh)或jvmsettings.sh文件(/etc/profile.d/jvmsettings.sh)中设置此env变量。除了GC类型之外,还可以将其他jvm参数传递给同一命令

export CATALINA_OPTS="-Xms4096M -Xmx7168M -XX:+UseG1GC -XX:+PrintGCDetails -Xloggc:/settings/logs/gc.log"
完成配置后,重新启动tomcat服务器。然后执行以下命令以获取当前正在使用的GC类型

jmap -heap <process_id>
jmap-堆

Hey Ankur,我使用上述命令将variables.conf文件添加到tomcat/conf文件夹中。但是,它仍然使用默认的JVM垃圾收集器。更改后,我执行了jmap-heap命令,它返回了“使用线程本地对象分配。带4个线程的并行GC”java-version:1.8.0\u 131 Apache Tomcat version 8.5.15有任何评论您是否重新启动了Tomcat?是的,重新启动了Tomcat服务器您是否在Tomcat中已经有variables.conf或添加了新文件?可能还有其他文件,您可以在其中尝试添加java选项