我正在研究有關Java 6 18 VM上垃圾回收的各種選項,並希望獲得一些指針。解決PermGen問題的各種選項
我們在JBoss上運行我們的應用程序,並偶爾在重新部署過程中出現臭名昭着的PermGen錯誤。互聯網上有許多相互矛盾和過時的信息,說明解決或緩解這個問題的最佳方法。
從what I can see,以下是正確的:
- 自己VM選項將不解決此問題,只能推遲了。
- 解決此問題的唯一可靠方法是修復Application Server本身(不太可能)或運行在Application Server中的代碼(我們的代碼或第三方庫)中的編碼錯誤(更可能)。 Permgen的填充通常是由應用程序類加載器加載到由Application Server類加載器加載的對象的引用的結果,從而防止垃圾回收應用程序的類加載器。
我有兩個問題由此產生:
- 就是上面是否正確?
- 虛擬機選項
CMSClassUnloadingEnabled
和CMSPermGenSweepingEnabled
是從哪裏來的?從我所看到的CMSClassUnloadingEnabled
取代或暗示啓用CMSPermGenSweepingEnabled
。他們中的任何一個能幫助解決上述問題?
禁用生產服務器上的熱部署。實際上,我傾向於爲開發人員工作站環境以外的其他任何應用程序執 – 2014-04-24 14:11:57