WebApp使JAVA使用+ 30GB的虚拟内存

时间:2016-04-15 10:23:46

标签: java tomcat optimization out-of-memory cas

抱歉我的英文不好,我在这个网站上看到了成千上万的帖子,其他人试图找到解决这个问题的方法。

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

当我启动Tomcat时,java立即需要6-7GB,然后在半分钟内保持增加,直到达到至少32GB。

我的堆大小参数是:Xms& Xmx = 2048M Xss = 400m XX: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的唯一信息是它不是热部署友好的)我不知道还有什么可做的。

如果我使用" pmap -x PID"用java给我一个很大的列表,向我展示了大部分用#34; [anon]"映射。很多这些地址(数十个)只需要409592K,其中一些甚至更多(例如,我可以看到2097664K)。所有大的都有" [anon]"作为映射和RW权限。

感谢您的帮助我更像是一名IT技术人员,而不是代码编写人员,所以我对这个问题感到不满意。

0 个答案:

没有答案