異常如下:Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
一、解釋:JDK6新增錯誤類型。
當GC為釋放很小空間占用大量時間時會拋出此異常
即(Sun 官方對此的定義:超過98%的時間用來做GC並且回收了不到2%的堆內存時會拋出此異常)。
一般是因為堆太小,導致異常的原因:沒有足夠的內存。
二、解決方案:
1、查看系統是否有使用大內存的代碼或死循環。
2、可以添加JVM的啟動參數來限制使用內存:-XX:-UseGCOverheadLimit
方法如下:linux環境下在tomcat的catalina.sh文件中 在cygwin=false這一行上面加入
JAVA_OPTS="-Xms512m -Xmx2048m -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m -XX:-UseGCOverheadLimit"