2012-10-25 94 views
2

在中等用戶負載的情況下,我的Tomcat應用程序變得非常慢,我不得不重新啓動Tomcat以允許用戶工作。PS Old Gen已滿並且我的應用程序變慢了

該系統的規格是:

  • 的Centos 5.4 64位與8GB RAM
  • 的Tomcat 6
  • 甲博尼塔BPM web應用程序 - 它利用許多Groovy的調用/腳本

的系統只運行Tomcat,沒有數據庫或其他任何東西。

當應用程序變得非常慢時,java內存的快照顯示爲here

你有什麼想法來幫助我微調java內存參數來幫助系統工作嗎? 在Tomcat中當前內存OPS是這些:

MEMORY_OPTS="-Xshare:auto -Xms3072m -Xmx6144m -XX:MaxPermSize=1536m"` 

我應該使用-XX: UseCompressedOops或任何其他參數,以防止這種內存耗盡?

+2

''-XX:+ UseCompressedOops'應該默認打開,除非您有舊版本的Java 6.您擁有哪個版本的Java? –

+0

這是jdk 1.6.0_25和唯一的參數是那些在上述MEMOPY_OPTS – tmanolatos

+0

那一個是19個月大,它可能有這個選項,但我會考慮更新,如果你可以,它肯定會上。 –

回答

1

我建議你對應用程序進行內存分析,以查看有多少內存正在保留以及產生垃圾的位置。對於大多數Web應用程序來說,GC不是什麼大問題,但是如果垃圾數量過多,並且沒有太多可用內存,則會顯着降低系統速度。

+0

對不起我的無知,但我只有SSH /控制檯模式訪問服務器。是否可以分析應用程序? – tmanolatos

+0

您可以觸發活動對象的堆轉儲,壓縮它,下載並分析它。這會讓你知道保留的內容,以瞭解你的記憶力爲何增加。我會確保你有一個類似於生產的測試環境,你可以在你控制的系統上重現問題。 –

相關問題