最近我們開始使用New Relic來監視我們在tomcat 7.0.6服務器上託管的生產webapp,但是我們發現這個tomcat的內存佔用空間正在不斷增加,並且在一週內它吞噬了所有服務器(AWS High-Memory Double Extra大型實例)內存並且變得沒有響應,只有重新啓動它才能恢復。 我們在啓動tomcat時提供Xms & Xmx參數,但是在幾個小時內,tomcat進程的內存使用量與Xmx值交叉,並且它持續增加,直到所有服務器內存都結束。下面是過程的命令:爲什麼New Relic吃了很多tomcat的內存?
/usr/java/jdk1.6.0_24//bin/java
-Djava.util.logging.config.file=/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6/conf/logging.properties
-Xms8192m
-Xmx8192m
-javaagent:/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6/newrelic/newrelic.jar
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Duser.timezone=Asia/Calcutta
-Djava.endorsed.dirs=/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6/endorsed
-classpath /xxx/xxx/xxx/xxx/apache-tomcat-7.0.6/bin/bootstrap.jar:/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6/bin/tomcat-juli.jar
-Dcatalina.base=/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6
-Dcatalina.home=/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6
-Djava.io.tmpdir=/xxx/xxx/xxx/xxx/apache-tomcat-7.0.6/temp org.apache.catalina.startup.Bootstrap start"
理想情況下我希望這個過程不要使用超過8GB的內存更多,但小時內,它必須高於10GB和幾天之內就必須高於20GB和其他所有在此服務器上遭受因它(我使用'top'來查看內存使用情況)。這怎麼可能?
我是一名工程師,負責New Relic的Java代理。如果你願意,你可以在[email protected]上打開這個問題的支持票。您正在使用哪個版本的Java代理?另外,系統內存或堆內存中的內存爆炸了嗎? – 2012-01-03 18:30:02
我似乎也有這個問題,所以你並不孤單。本週末我用newrelic提交了一份支持請求。在我們的例子中,tomcat只是因爲OutOfMemory異常而死亡。 – JBCP 2012-03-18 19:43:44
對我也有發生 – 2012-04-04 06:15:40