2011-09-13 57 views
1

我使用Java Melody來監視我們的一個應用程序,該應用程序是使用AJP以Apache 2作爲前端部署在Tomcat 6中的標準J2EE應用程序。 F5後面有兩個實例。事情看起來相當正常,而且它是一個低容量的應用程序;它每分鐘平均大約200次點擊,使用大約4%的CPU,並平均存儲350兆內存。令我困擾的一件事是班級數量的增加;三天之後,一個JVM在752k,另一個在741k。三是直接使用類數增加Tomcat中的加載類數繼續增加

在環顧stackoverflow,似乎有很多這樣的帖子,當應用程序停止&在Tomcat中重新啓動或重新部署。這裏情況不同。任何時候我們重新部署,整個事情都會停止,包括Apache。

任何想法如何弄清楚發生了什麼?

回答

0

您還沒有報告任何OutOfMemory異常,因此可能這些增加的類不是問題。

如果加載的類數增加,這意味着這些不會被垃圾收集,因爲對這些實例的某些引用仍然存在。可能是由應用程序加載並駐留在內存中的一些內部API或第三方庫。

有兩件事情我會建議:

A)是你的GC設置,Xmx,Xms,NewSize和很多設置足夠的價值?你可以發佈他們添加到您的問題。 B)分析應用程序並檢查堆中的內容。使用VisualVM或Yourkit獲取並分析堆轉儲。

0

在AIX上運行tomcat 7時遇到類似的問題。在添加java_opt「-Xincgc」之後,它似乎平坦了。