背景:
Windows Server 2012 R2- 64 bit
16 GB RAM
Tomcat 8
Java 8
我在 Tomcat 8 上运行 java 应用程序。我面临着高内存使用问题。内存使用率高达 95%,服务器崩溃。CPU使用没有问题。
我正在设置 JAVA_OPTStomcat\bin\catalina.bat
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:PermSize=512m -XX:+UseParallelGC"
注意:XMS 和 XMX 是从 catalina UI 设置的。
我了解,Java 8 中没有 PermGen 概念,所以我在 JAVA_OPTS 下尝试了 -XX:MaxMetaspaceSize=512m
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:MaxMetaspaceSize=512m -XX:+UseParallelGC"
但没有运气。
有趣的事:
tomcat 进程使用的内存保持在 3.5 GB 左右,但内存使用量高达 15 GB。所有剩余的进程加起来只有 1 GB。我不知道哪个进程正在消耗剩余的 9-10 GB。
有什么想法吗?
谢谢。