如何在 tomcat、linux 机器上为 Web 应用程序 运行 使用 JVM 参数
How to use JVM parameters for web application running on tomcat, on linux machine
当我的 Web 应用程序部署在我的生产服务器上时,我想使用不同于默认并行 GC 的垃圾收集器,该服务器将位于 linux。
举个例子,我想为应用程序使用 Concurrent Mark Sweep 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 环境中。
注意我将此 war 打包到 windows 机器上,然后使用 putty 和 winscp[=36= 在 linux 机器上部署 war ]
我不明白的是这将如何确保 CMS GC 是 运行?我的意思是我不应该在我的应用程序 运行 中包含这些更改吗?
或者在打包时包含这些 JVM 参数就足够了。
如果我想包含其他各种 JVM 参数,包括打包时也是如此,war 很好,或者我们也需要在其他地方包含这些参数?
请说明。
在 [TOMCAT_HOME]/bin/catalina.sh
和 JAVA_OPTS
中添加这些参数
JAVA_OPTS=-Dgwt.extraJvmArgs="-Xms2048m -Xmx2048m -XX:PermSize=512M -XX:MaxPermSize=512M -XX:+UseConcMarkSweepGC"
打包 war 文件时提供这些没有任何影响。
当我的 Web 应用程序部署在我的生产服务器上时,我想使用不同于默认并行 GC 的垃圾收集器,该服务器将位于 linux。
举个例子,我想为应用程序使用 Concurrent Mark Sweep 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 环境中。
注意我将此 war 打包到 windows 机器上,然后使用 putty 和 winscp[=36= 在 linux 机器上部署 war ]
我不明白的是这将如何确保 CMS GC 是 运行?我的意思是我不应该在我的应用程序 运行 中包含这些更改吗?
或者在打包时包含这些 JVM 参数就足够了。
如果我想包含其他各种 JVM 参数,包括打包时也是如此,war 很好,或者我们也需要在其他地方包含这些参数?
请说明。
在 [TOMCAT_HOME]/bin/catalina.sh
和 JAVA_OPTS
JAVA_OPTS=-Dgwt.extraJvmArgs="-Xms2048m -Xmx2048m -XX:PermSize=512M -XX:MaxPermSize=512M -XX:+UseConcMarkSweepGC"
打包 war 文件时提供这些没有任何影响。