最近使用tomcat做服務器,項目中有個導入excel,數據大約2萬左右。在本地eclipse調試導入沒問題。
但是部署到linxu后就報 "http-bio-8080-exec-4" java.lang.OutOfMemoryError: PermGen space
然后看了下服務器狀態,地址:http://ip:port/manager/status
顯示如下(做了標注),明顯屬於PermGen OOM。
導入的excel每條就解析成一個對象,棧中生,堆中活,perm存不住。
調整 文件:~/bin/catalina.sh
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萬級別的造了。順利完成
ps端口查看界面需要配置一些用戶:
tomcat7配置管理員信息
1:打開tomcat7下的~/conf/tomcat-users.xml文件,關於用戶角色、管理員的信息都在這個配置文件中。
2:在配置文件<tomcat-users>節點下添加如下xml
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="admin" roles=" admin-gui , manager-gui "/>