我有一台运行tomcat7的linux(ubuntu)服务器。服务器有1GB的RAM,并且我正在从java抛出堆空间错误。tomcat java.util.logging进程
基本上发生了什么,是我的Tomcat服务器(运行我的servlet代码)抛出异常,因为没有更多的内存来分配。我的代码非常精简,所以我不认为这是问题。
当我看着HTOP,我看到了很多Java记录过程中,我看到约30这些进程:
ps ax | grep java
7412 pts/0 Sl 0:02 /usr/bin/java -Djava.util.logging.config.file=/usr/share/tomcat/apache-tomcat-7.0.29/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/share/tomcat/apache-tomcat-7.0.29/endorsed -classpath /usr/share/tomcat/apache-tomcat-7.0.29/bin/bootstrap.jar:/usr/share/tomcat/apache-tomcat-7.0.29/bin/tomcat-juli.jar -Dcatalina.base=/usr/share/tomcat/apache-tomcat-7.0.29 -Dcatalina.home=/usr/share/tomcat/apache-tomcat-7.0.29 -Djava.io.tmpdir=/usr/share/tomcat/apache-tomcat-7.0.29/temp org.apache.catalina.startup.Bootstrap start
7426 pts/0 D+ 0:00 grep --color=auto java
25937 ? Sl 13:12 /usr/bin/java -Djava.util.logging.config.file=/usr/share/tomcat/apache-tomcat-7.0.29/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/share/tomcat/apache-tomcat-7.0.29/endorsed -classpath /usr/share/tomcat/apache-tomcat-7.0.29/bin/bootstrap.jar:/usr/share/tomcat/apache-tomcat-7.0.29/bin/tomcat-juli.jar -Dcatalina.base=/usr/share/tomcat/apache-tomcat-7.0.29 -Dcatalina.home=/usr/share/tomcat/apache-tomcat-7.0.29 -Djava.io.tmpdir=/usr/share/tomcat/apache-tomcat-7.0.29/temp org.apache.catalina.startup.Bootstrap start
这些Java进程缓慢泄漏内存随着时间的推移,因为我只有1GB的与我的tomcat服务器玩ram开始抛出堆空间异常。
我曾与log4j的拨弄(但应关闭),我已经做了所有我可以关闭日志记录在CONFIGS我能找到。
任何帮助将是巨大的,我只需要摆脱这些过程的 - 他们的方式贪婪。谢谢!
〜丹
编辑:更多的信息:
嗨,这可能是一个足够大的提示完全解决这一个 - 我查了一些启动调试以及与此想出了:
Oct 02, 2012 8:50:08 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/NMVServer] appears to have started a thread named [http-bio-8080-exec-53] but has failed to stop it. This is very likely to create a memory leak.
Oct 02, 2012 8:50:08 AM org.apache.catalina.loader.WebappClassLoader
clearReferencesThreads
SEVERE: The web application [/NMVServer] appears to have started a thread named [http-bio-8080-exec-54] but has failed to stop it. This is very likely to create a memory leak.
Oct 02, 2012 8:50:08 AM org.apache.catalina.loader.WebappClassLoader
clearReferencesThreads
SEVERE: The web application [/NMVServer] appears to have started a thread named [http-bio-8080-exec-62] but has failed to stop it. This is very likely to create a memory leak.
Oct 02, 2012 8:50:08 AM org.apache.catalina.loader.WebappClassLoader
clearReferencesThreads
SEVERE: The web application [/NMVServer] appears to have started a thread named [http-bio-8080-exec-64] but has failed to stop it. This is very likely to create a memory leak.
我发现泄漏的一个问题是由于根据几个论坛的JDBC驱动程序http://bugs.mysql.com/bug.php?id=36565的错误。这解决了我收到的另一个信息。
我一直环顾四周,我发现这是非常有用的:
http://wiki.apache.org/tomcat/MemoryLeakProtection
现在我只是想通过您的所有提醒感谢堆工作!
〜丹
请运行'ps ax | grep java'并粘贴一个* full *命令行。您粘贴的部分只显示一堆配置选项。被称为实际的类是不可见的... – thkala 2012-08-17 11:24:25
对不起,延迟和dodgey的初始职位。我已经用适当的信息更新了它。 – FaddishWorm 2012-08-19 23:03:33
你的意思是你有大约30个进程与你的文章中的pid 7412类似。但是这个过程代表了整个Tomcat服务器,从“org.apache.catalina.startup.Bootstrap start”中可以看出。那意味着你有30台服务器正在运行? – Nikem 2012-10-01 13:00:54