我們正在做一個應用程序的負載測試,並在一段時間後AppDynamics報告「PS老」在100%紅色。完整的GC每10分鐘運行一次。內存的「當前使用率」在70-90%之間變化,它會像這樣持續幾個小時,並且永遠不會因OOM而失敗。100%的老一代 - 這是一個問題嗎?
我認爲一旦老的發電利用率超過一定的水平,GC就會嘗試釋放/壓縮老的發電面積,如果沒有任何東西被釋放,它會或者因OOM而失敗,並在它之前開始瘋狂的完整GC循環。但是我沒有看到任何這些。該應用程序運行良好,使用率達到100%。
我們使用的是Oracle的Java 7U14(64B,4個CPU核心,10GB RAM)和JVM配置了
-XX:+UseParallelOldGC -Xmx4g
謝謝!
增加堆的大小,如果你想減少完整的GC頻率 – 2014-12-11 04:29:06
謝謝,但是全面的GC每10分鐘發生一次,所需時間不到一秒,所以這很好... – 2014-12-11 04:33:45
你的年輕一代是怎樣的?如果它幾乎是空的 - 可能是你可以調整堆分佈給更多的老一代 – 2014-12-11 04:35:16