Tomcat 8和Java 8:高内存使用率

时间:2016-10-27 07:07:25

标签: memory-management memory-leaks java-8 tomcat8 java-opts

背景

Windows Server 2012 R2- 64 bit
16 GB RAM
Tomcat 8
Java 8 

我在Tomcat 8上运行java应用程序。我面临着高内存使用问题。内存使用率高达95%,服务器崩溃。 CPU使用率没问题。

我在tomcat\bin\catalina.bat

中设置了JAVA_OPTS
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。

系统内存上升,这是快照。 Task Manager

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

问题在于我们使用的VM。有一些更新过程用于保持VM忙碌。