最近在单位的电脑上调试程序。由于使用了JPA和OperaMasks这两个在容器启动的时候需要扫描实体Bean和LiteBean的框架,所以,在Tomcat启动初期,系统经常由于大量的对象被创建而不能回收导致PermGen Space Over Flow。在网上经过一番搜索,终于找到了如下的启动参数,经测试多次热部署不会导致VM崩溃。

-Xms128m -Xmx512m -Xmn96m -XX:PermSize=256M -XX:MaxPermSize=256M -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:GCTimeRatio=19 -Xnoclassgc -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:SoftRefLRUPolicyMSPerMB=0
文章来源:http://x-spirit.spaces.live.com/Blog/cns!CC0B04AE126337C0!799.entry