WebApp让JAVA使用+;30GB虚拟内存

WebApp让JAVA使用+;30GB虚拟内存,java,tomcat,optimization,out-of-memory,cas,Java,Tomcat,Optimization,Out Of Memory,Cas,首先我为我的英语不好感到抱歉,我在这个网站上看到了成千上万的帖子,还有其他人试图找到解决这个问题的方法 我必须使用Tomcat 8.0.30和CAS服务器优化一台消耗大量虚拟内存和大量CPU的服务器。当我使用命令“top”查看时,显示屏会显示使用最小32,2G的java进程。我已经克隆了服务器所在的虚拟机,并且安全地尝试了我在互联网上看到的几乎所有东西 当我启动Tomcat时,java会立即占用6-7GB,然后在半分钟内不断增加,直到至少达到32GB 我的堆大小参数是:Xms&Xmx=2048m

首先我为我的英语不好感到抱歉,我在这个网站上看到了成千上万的帖子,还有其他人试图找到解决这个问题的方法

我必须使用Tomcat 8.0.30和CAS服务器优化一台消耗大量虚拟内存和大量CPU的服务器。当我使用命令“top”查看时,显示屏会显示使用最小32,2G的java进程。我已经克隆了服务器所在的虚拟机,并且安全地尝试了我在互联网上看到的几乎所有东西

当我启动Tomcat时,java会立即占用6-7GB,然后在半分钟内不断增加,直到至少达到32GB

我的堆大小参数是:Xms&Xmx=2048mxss=400mxx:MaxPermSize=128M

我的catalina.out显示了以下问题:

04-Apr-2016 11:43:09.276 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [cas] appears to have started a thread named [scheduler_Worker-1] but has failed to stop it. This is very likely to create a memory leak. S tack trace of thread:  java.lang.Object.wait(Native Method) org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568) 

04-Apr-2016 11:45:52.746 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web applica tion [cas] appears to have started a thread named [Thread-7] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: 

15-Apr-2016 08:21:30.384 SEVERE [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks La aplicación web [cas_theother] creó un ThreadLocal con clave del tipo [com.codahale.metrics.ThreadLocalRandom$1] (valor [com.codahale.metrics.ThreadLocalRandom$1@39a33874]) y un valor del tipo [com.codahale.metrics.ThreadLocalRandom] (valor com.codahale.metrics.ThreadLocalRandom@acf653c]) pero no pudo quitarlo cuando la aplicación web se paró. Los hilos se van a renovar con el tiempo para intentar evitar in posible fallo de memoria.

org.apache.catalina.core.AprLifecycleListener.lifecycleEvent La biblioteca nativa de Apache Tomcat basada en ARP que permite un rendimiento óptimo en entornos de desarrollo no ha sido hallada en java.library.path:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

15-Apr-2016 08:19:39.337 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars Al menos un JAR, que se ha explorado buscando TLDs, aún no contenía TLDs. Activar historial de depuración para este historiador para una completa lista de los JARs que fueron explorados y de los que nos se halló TLDs. Saltarse JARs no necesarios durante la exploración puede dar lugar a una mejora de tiempo significativa en el arranque y compilación de JSP .
请原谅西班牙语,但我希望你知道问题是什么,因为前3个在网上很流行

我认为问题出在CAS服务器上,但我不能完全确定,而且缺乏在线信息让我头疼。我们已经将CAS服务器配置为在启动时部署(我找到的关于CAS的唯一信息是它不支持热部署),我不知道还能做什么

如果我在java中使用“pmap-xpid”,我会得到一个大列表,其中显示了在带有“[anon]”映射的地址中使用的大部分内存。很多地址(几十个)需要409592K,有些甚至更多(例如,我可以看到2097664K)。所有大的都有“[anon]”作为映射和RW权限


感谢您的帮助我更像是一名IT技术人员,而不是一名代码编写员,因此我对这些问题感到不自在。

分析它,发现问题,修复它(或让其他人修复它),盈利。如何分析它?我可以说它不是堆大小配置(是的,我知道虚拟内存需求通常比我们配置的堆大小参数大),但我们显然有问题,我无法理解问题的原因,当我寻找OOEM的解决方案时(也有)它总是关于Tomcat的话题,人们说它是JVM的东西。无论如何,我感谢你的帮助,thx。你需要一个剖析器(这是最简单的部分),以及能够使用它并理解结果的人。如果您不熟悉代码方面,您可能需要一些外部帮助。分析它、发现问题、修复它(或让其他人修复它)、盈利。如何分析它?我可以说它不是堆大小配置(是的,我知道虚拟内存需求通常比我们配置的堆大小参数大),但我们显然有问题,我无法理解问题的原因,当我寻找OOEM的解决方案时(也有)它总是关于Tomcat的话题,人们说它是JVM的东西。无论如何,我感谢你的帮助,thx。你需要一个剖析器(这是最简单的部分),以及能够使用它并理解结果的人。如果您不熟悉代码端,那么看起来您需要一些外部帮助。