我們在Google雲管理的虛擬機上運行了一個大型Java應用程序(這限制了我認爲控制JVM調整參數的能力)。Java連續GC,ParOldGen用盡
我們在RAM中有數百萬個對象(大約15GB)。
在執行可能涉及創建數萬個對象的任務時(解析巨大的Excel),系統可能會由於垃圾收集而凍結很多分鐘。
我們注意到,總體而言,我們在RAM上不低,但ParOldGen
似乎99%被使用。任何建議如何避免這個請嗎?
Heap
PSYoungGen total 6083072K, used 267497K [0x000000064eb00000, 0x0000000800000000, 0x0000000800000000)
eden space 6078464K, 4% used [0x000000064eb00000,0x000000065f03a438,0x00000007c1b00000)
from space 4608K, 0% used [0x00000007c1b00000,0x00000007c1b00000,0x00000007c1f80000)
to space 528384K, 0% used [0x00000007dfc00000,0x00000007dfc00000,0x0000000800000000)
ParOldGen total 14198272K, used 14197939K [0x00000002ec180000, 0x000000064eb00000, 0x000000064eb00000)
object space 14198272K, 99% used [0x00000002ec180000,0x000000064eaacc60,0x000000064eb00000)
PSPermGen total 65536K, used 50669K [0x00000002e1b80000, 0x00000002e5b80000, 0x00000002ec180000)
object space 65536K, 77% used [0x00000002e1b80000,0x00000002e4cfb640,0x00000002e5b80000)
如果您可以使用VisualGC連接到JVM,將會非常有幫助。 – 2015-02-23 20:06:26
請參閱http://stackoverflow.com/questions/3003855/increase-permgen-space – 2015-02-23 20:08:34
感謝但運行在託管虛擬機上(由Google創建的Docker環境中)我不確定我們可以運行Visual GC或使用參數如-XX:MaxPermSize – user1176505 2015-02-23 20:15:03