Java 如何在Tomcat中设置自定义垃圾收集器算法
我想为运行在tomcat之上的java应用程序[war]设置一个自定义垃圾收集器算法。我使用的是java8,默认的垃圾收集器是parallelGC。我想用G1GC或CMS GC代替这个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 找到答案后,我会将其张
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选项