我有一臺運行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