2

当部署在我的生产服务器上时,我想为我的 Web 应用程序使用与默认并行 GC 不同的垃圾收集器,该服务器将在 linux 上。

举个例子,我想为应用程序使用 Concurrent Mark Sweep GC。

现在我读到我们可以通过添加-XX:+UseConcMarkSweepGC和其他各种 JVM 参数来微调它。

因此,在使用 maven 打包我的战争时,我包含了这个额外的 JVM 参数。例子:

mvn clean package -Dgwt.extraJvmArgs="-Xms2048m -Xmx2048m -XX:PermSize=512M -XX:MaxPermSize=512M -XX:+UseConcMarkSweepGC" 

战争已打包,我将其部署在我的 linux 环境下运行的 tomcat 服务器上。

注意我在windows机器上打包这个war然后使用putty和winscp在linux机器上部署war

我不明白的是,这将如何确保 CMS GC 正在运行?我的意思是我不应该在我的应用程序运行的地方包含这些更改吗?

或者在打包时包含这些 JVM 参数就足够了。

如果我想包含其他各种 JVM 参数也是如此,包括在打包战争时很好,或者我们还需要在其他地方包含这些参数?

请解释。

4

1 回答 1

3

将这些参数添加到[TOMCAT_HOME]/bin/catalina.shwithJAVA_OPTS

JAVA_OPTS=-Dgwt.extraJvmArgs="-Xms2048m -Xmx2048m -XX:PermSize=512M -XX:MaxPermSize=512M -XX:+UseConcMarkSweepGC"

在打包 war 文件时提供这些内容没有任何影响。

于 2015-07-22T07:19:51.680 回答