1、 e:\tomcat7\bin\catalina.bat
添加如下語句:
set JAVA_OPTS=-server -Xms512m -Xmx512m -Xss256k -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m
2、查看tomcat的JVM內存
tomcat7中默認沒有用戶的,我們首先要添加用戶有:
修改E:\tomcat\conf\tomcat-users.xml
<!--############################################################-->
<!--添加tomcat用戶管理-->
<rol rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
<!--############################################################-->
3、檢查webapps下是否有Manager目錄,一般發布時我們都把這個目錄刪除了,現在看來刪除早了,在調試期要保留啊!
4、訪問地址:
http://localhost:8400/manager/status
查看內存配置情況,經測試-Xms512m -Xmx512m與-Xms1024m -Xmx1024m內存使用情況不一樣,使用1024的時候有一項內存使用99%。所以看來這個設置多少與實際機器有關,需要Manager進行查看后確定。
5、在啟動Tomcat中發現,有同志發布程序時把我們在TOMCAT7中引用的外部JAR包重復發布到LIB目錄下了,我們以后在發布時要檢查LIB下是不是包括
el-api.jar jsp-api servlet-api,特別注意的是最后一個servlet-api,我發現兩個項目都把它拷貝到了LIB目錄下!!被我刪除了。
6、增大TOMAT的連接數:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="200" minSpareThreads="100"/>
<Connector port="8400" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="2000"
redirectPort="8443" enableLookups="false"
acceptCount="5000" maxThreads="100" URIEncoding="UTF-8"/>
maxThreads:最大線程數 200
minSpareThreads:初始化建立的線程數 100
maxThreads:一旦線程超過這個值,Tomcat就會關閉不再需要的線程。
參考資料:
Java調優之jvm和線程的內存分析
http://www.mzone.cc/article/321.html