最近使用tomcat做服务器,项目中有个导入excel,数据大约2万左右。在本地eclipse调试导入没问题。
但是部署到linxu后就报 "http-bio-8080-exec-4" java.lang.OutOfMemoryError: PermGen space。
然后看了下服务器状态,地址:http://ip:port/manager/status
显示如下(做了标注),明显属于PermGen OOM。
导入的excel每条就解析成一个对象,栈中生,堆中活,perm存不住。
调整
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=512m -XX:MaxPermSize=512m"
重启,再看,噢啦,512M足够excel导入20万级别的造了。顺利完成。