2013-11-09 54 views
0

虛擬機:Shinking JVM內存和交換

4CPU 10GB RAM 10GB交換

的Java 1.7 -Xms = -Xmx =6144米

的Tomcat 7

我們觀察到一個非常與JVM的奇怪行爲。 JVm常駐內存開始縮小,交換使用率高達50%以上。

請參閱下面的監測工具的統計數據。

http://i44.tinypic.com/206n6sp.jpg http://i44.tinypic.com/m99hl0.jpg

任何指針明白這是感激。

謝謝!

+0

我相信這是更多的Linux系統管理問題,所以它可能屬於服務器故障,不在這裏。但我猜測還有另一個過程沒有顯示在你的圖表上。使用'top'查看所有進程並按'M'按內存使用情況進行排序。 –

回答

0

或者你的Java程序被閒置,並沒有需要內存,和你有高swappiness?在這種情況下,您的操作系統將釋放內存以防萬一,只留下已使用的部分。

在我看來,你爲什麼要浪費RAM的過程中,不會使用它,實際上是良好的行爲?

除非在虛擬機上只運行這一個進程,否則將swappiness設置爲0或其他小數字是很不錯的主意 - 這個內存被賦予這個單獨的進程,所以我們可能禁用它的交換。

0

感謝您的回覆。是的,這更接近於系統故障診斷,而不是Java,但我認爲這是啓動此主題的正確論壇,因爲任何人都已經看到JVM出現這種現象。

不管怎麼說,我已經檢查了頂部,沒有沒有其他過程比Java這是餓了的記憶。實際上,第二個頂級過程是利用72MB(RSS)。

否swappiness是不是這個系統上,但在默認60我錯過了分享一個附加信息,我們有4臺應用服務器,並在同一時間準確地表明這種行爲侵略性集。 AFAIK,JVM不會換出,但操作系統會。但所有這一切都讓我感到困惑。

所有這些應用服務器是生產忙着服務請求,從而沒有閒着。使用的Heap大小爲6GB的平均5GB。

我發現了另一個有趣的事情一些未能在VMware將消息記錄在同一時間,這就是我調查。