在我的生產應用程序之一,我們使用的是Oracle JRockit的JVM作爲。小GC頻率非常高(大約每40秒)。但是有一段時間我們看到頻繁的Full GC發生,在那段時間Minor GC也收回可以忽略的字節。導致應用程序失敗,因爲我們的應用程序需要在1秒和完整的GC暫停響應正在服用超過1秒。頻繁的完全GC和零回收過程中,較小GC
我有一些來自GC日誌的觀察 1-輕微GC無法在此期間回收任何字節,而不是特定的時期Minor GC回收幾乎95%至95%的苗圃(除了保留區域)。 2 - 我觀察緊急並行清理要求在這個壓縮階段
我堆配置都
Heap : 10 GB
Nursery : 1GB
GC : gencon
Keeparea : 50%
CompactionRatio : 10%
gcTrigger : 40%
我們試圖改變幼兒園大小爲2GB & 3GB,其中問題的頻率有2GB和下降與3GB
任何幫助增加了爲什麼這個問題是造成或如何作進一步調查
Upda te 1:
我已啓用Memdbg模塊進行GC,發現Full GC已觸發,因爲苗圃零件高於默認限制10000,但我可以看到OC也在苗圃中留下大量零件。在這個問題上
我在使用JRockit時遇到了一些問題。但是,如果我是你,我會嘗試更好地瞭解不同存儲區域的填充等級。不知道的JRockit的車載工具(我建議的JConsole與熱點),我可以指出你YourKit,它提供了一個15天的試用,這應該足以得到一種感覺,它的內存區域都是人滿爲患。 – Jonathan