2013-08-16 92 views
4

我使用Jboss eap 5.1和Seam Framework。我想調整我的GC以避免FullGC。我已經使用CMS GC。這將是我在生產系統中一個配置:Jboss eap 5.1 GC JMV選項

-Xms24g 
-Xmx24g 
-XX:+UseCompressedOops 
-XX:NewRatio=4 
-XX:SurvivorRatio=8  
-XX:+UseConcMarkSweepGC 
-XX:+UseParNewGC 
-XX:+DisableExplicitGC 
-XX:+UseCMSInitiatingOccupancyOnly 
-XX:+CMSClassUnloadingEnabled 
-XX:+CMSScavengeBeforeRemark 
-XX:CMSInitiatingOccupancyFraction=68 

我的問題是「我是否需要刪除此JVM選項」?:

-Dsun.rmi.dgc.client.gcInterval=3600000 
-Dsun.rmi.dgc.server.gcInterval=3600000 

,如果我將新增一個:

-XX:+DisableExplicitGC 

或者他們必須呆在一起?

回答

1

您可以啓用兩組選項。但是,-XX:+DisableExplicitGC將阻止來自RMI會話的任何SystemGC呼叫。

推薦使用的方法是使用-XX:+DisableExplicitGC或至少使用sun.rmi.dgc.*.gcInterval標誌來控制System GC調用的頻率(以防止SystemGC頻繁發生),從而全部禁用SystemGC。

我建議使用-XX:+DisableExplicitGC並觀察「死」RMI對象的數量是否增長,如果是,那麼您需要開始使用sun.rmi.dgc.*.gcInterval標誌進行調整。

這是所有提供的,你真的想避免完整的GC,也許容忍一個短暫的停頓完整的GC不會是一個壞主意,因爲無論如何你需要它們來清理RMI對象。