首页 > 解决方案 > 如何在 Tomcat 中设置自定义垃圾收集器算法

问题描述

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

java -XX:+UseG1GC -jar Application.java

可以使用上述命令执行 Jar 应用程序。但我想知道我们如何在 tomcat/ 中使用 war 应用程序进行配置?

标签: javagarbage-collectiontomcat8

解决方案


找到答案,我会在这里发布以供社区使用

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

export CATALINA_OPTS = "-XX:+UseG1GC"

您可以在 setenv.sh 文件(tomcat/bin/setenv.sh)或 jvmsettings.sh 文件(/etc/profile.d/jvmsettings.sh)中设置此环境变量。除了 GC 类型,您还可以将其他 jvm 参数传递给同一命令

export CATALINA_OPTS="-Xms4096M -Xmx7168M -XX:+UseG1GC -XX:+PrintGCDetails -Xloggc:/settings/logs/gc.log"

完成配置后,重启tomcat服务器。然后执行以下命令获取当前使用的GC类型

jmap -heap <process_id>

在此处输入图像描述


推荐阅读