当我的 Web 应用程序部署在 Linux 上的生产服务器上时,我想使用与默认并行 GC 不同的垃圾收集器。
举个例子,我想在应用程序中使用并发标记清除GC。
现在我了解到我们可以通过添加 -XX:+UseConcMarkSweepGC
和各种其他 JVM 参数来对其进行微调来使用它。
因此,在使用 Maven 打包我的 war 时,我包含了这个额外的 JVM 参数。 示例:
mvn clean package -Dgwt.extraJvmArgs="-Xms2048m -Xmx2048m -XX:PermSize=512M -XX:MaxPermSize=512M -XX:+UseConcMarkSweepGC"
war已打包,我将其部署在我的tomcat服务器上,该服务器在linux环境下运行。
注意,我在 Windows 计算机上打包此 War,然后使用 putty 和 Winscp 在 Linux 计算机中部署该 War
我不明白的是,这将如何确保 CMS GC 正在运行?我的意思是我不应该在我的应用程序运行时包含这些更改吗?
或者在打包时包含这些 JVM 参数就足够了。
如果我想包含各种其他 JVM 参数,包括打包 war 时的参数,或者我们也需要在其他地方包含这些参数,情况也是如此?
请解释一下。
最佳答案
使用 JAVA_OPTS
在 [TOMCAT_HOME]/bin/catalina.sh
中添加这些参数
JAVA_OPTS=-Dgwt.extraJvmArgs="-Xms2048m -Xmx2048m -XX:PermSize=512M -XX:MaxPermSize=512M -XX:+UseConcMarkSweepGC"
它对于在打包 war 文件时提供这些没有任何影响。
关于java - 如何在 Linux 机器上的 Tomcat 上运行 Web 应用程序时使用 JVM 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31556343/