爲了解決tomcat在大進行大併發請求時,出現內存溢出的問題,請修改tomcat的內存大小,其中分爲如下兩種方式:java
1、使用 catalina.bat 等命令行方式運行的 tomcatlinux
查看系統最大支持內存命令:java -Xmx1024m -versionwindows
一、修改 tomcat\bin\Catalina.bat 文件
windows環境下:tomcat
在166行左右
rem Execute Java with the applicable properties 」如下每行
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%併發
在 %DEBUG_OPTS% 後面添加-Xms256m -Xmx512mapp
linux環境下:spa
打開在Tomcat的安裝目錄的bin文件的catalina.sh文件,進入編輯狀態.
在註釋後面加上以下腳本:
JAVA_OPTS='-Xms512m -Xmx1024m'
JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=64M -XX:MaxPermSize=256m"
其中 JAVA_OPTS='-Xms512m -Xmx1024m' 是設置Tomcat使用的內存的大小.
-XX:PermSize=64M -XX:MaxPermSize=256m 指定類空間(用於加載類)的內存大小 命令行
保存後,從新以命令行的方式運行 tomcat ,便可,而後經過最後面介紹的如何觀察tomcat現有內存狀況的方法進行查看是否已經變動成功。server
2、使用 系統中的 「服務」,或者開始菜單的可執行程序運行的tomcatxml
一、關閉 如今正在運行的tomcat
2.1 [注意]
[高版本tomcat配置方法]
若是是tomcat 5.5 或者是 5.0.28 以後的版本,在 Java 選項卡中,下方,會有
Inital memory Pool:
Maximum memory Pool:
Thread stack size:
三個輸入框,在這裏便可不用作上面的操做,直接配置內存大小,只須要設置
Inital memory Pool 爲 256
Maximum memory Pool 爲 512
點擊肯定後,重啓tomcat 生效
若是您是低版本的tomcat,發現沒有上面那幾個錄入框,請看下面的操做步驟
[低版本tomcat配置方法]
在開始菜單中,找到「Apache Tomcat 5.0」,並選擇「Configure Tomcat」,在彈出的對話框窗口中,切換到 Java VM 選項卡,並在 Java Options 輸入框的最前面輸入
-Xms256m -Xmx512m
即輸入框中的內容會像下面的代碼(與本身的環境有所區別)
-Xms256m -Xmx512m
-Dcatalina.home="C:\tomcat5"
-Djava.endorsed.dirs="C:\tomcat5\common\endorsed"
-Xrs
設置完後,點擊「肯定」,並重啓tomcat便可。
3、查看現有tomcat的內存大小狀況
一、啓動tomcat
二、訪問 http://localhost:8080/manager/status ,並輸入您在安裝tomcat時輸入的用戶與口令,如 admin ,密碼 admin(密碼是您在tomcat安裝時輸入的)
注:添加用戶,修改conf/tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>
三、進入了Server Status頁面,能夠在JVM表格中看到
Free memory: 241.80 MB Total memory: 254.06 MB Max memory: 508.06 MB
上面的文字即表明了,當前空閒內存、當前總內存、最大可以使用內存三個數據。肯定了最大內存足夠大時,tomcat便可正常運轉