PermGen CodeCache問題

oxoxooxx發表於2012-02-27

Perm Gen(持久代)中Code Cache(程式碼緩衝區)是HotSpotJava虛擬機器用於編譯和儲存原生程式碼的記憶體.
當程式碼緩衝區用盡時會報如下相應的錯誤:
"CompilerThread0" java.lang.OutOfMemoryError: requested 2854248 bytes for Chunk::new. Out of swap space?

可以透過設定ReservedCodeCacheSize和CodeCacheMinimumFreeSpace引數來規避。
CodeCacheMinimumFreeSpace設定當code cache剩餘空間小於該值時java停止編譯解釋,進而停止對code cache的進一步使用,
雖然會影響系統效能但不至於使系統崩潰。

另外一種可以確定系統code cache合理值得方式是透過java profiler工具確認non-heap(非堆)空間和Perm Gen(持久代)大小,
相減得到code cache的值。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23937368/viewspace-1057463/,如需轉載,請註明出處,否則將追究法律責任。

相關文章