五種常用web伺服器jvm引數設定
一、tomcat
Tomcat預設可以使用的記憶體為128MB,在較大型的應用專案中,這點記憶體是不夠的,需要調大。有以下幾種方法可以選用:第一種方法:在配置檔案中設定Windows下,在檔案/bin/catalina.bat,Unix下,在檔案/bin/catalina.sh的前面,增加如下設定:
JAVA_OPTS=’-Xms【初始化記憶體大小】 -Xmx【可以使用的最大記憶體】‘
需要把這個兩個引數值調大。例如:
JAVA_OPTS=’-Xms256m -Xmx512m’
表示初始化記憶體為256MB,可以使用的最大記憶體為512MB。第二種方法:
環境變數中設
變數名:JAVA_OPTS
第三種方法:前兩種方法針對的是bin目錄下有catalina.bat的情況(比如直接解壓的Tomcat等),但是有些安裝版的Tomcat下沒有catalina.bat,這個時候可以採用如下方法,當然這個方法也是最通用的方法:執行tomcatHome/bin/tomcat5w.exe,點選Java選項卡,然後將會發現其中有這麼兩項:Initial memory pool和Maximum memory pool.Initial memory pool這個就是初始化設定的記憶體的大小。Maximum memory pool這個是最大記憶體的大小 設定完了就按確定然後再重啟TOMCAT
如果把tomcat作為系統服務啟動,這時候上面設定CATALINA_OPTS 屬性的方法就不適用了,因為作為系統服務的話,系統啟動時呼叫的是 %tomcat_home%”bin”tomcat5.exe,他讀取登錄檔中的值,而不是catalina.bat的設定,因此需要修改登錄檔:解決辦法修改登錄檔HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat5\Parameters\Java中的JvmMs和JvmMx。
或者用上面說的第三種方法。
重起tomcat
二、weblogic
方法一:找到安裝目錄下的weblogic\common\bin\commEnv.cmd檔案,開啟修改如下程式碼
sun
if “%PRODUCTION_MODE%” == “true” goto sun_prod_mode
set JAVA_VM=-client
set MEM_ARGS=-Xms768m -Xmx1024m -XX:MaxPermSize=256m
set JAVA_OPTIONS=%JAVA_OPTIONS% -Xverify:none
goto continue
:sun_prod_mode
set JAVA_VM=-server
set MEM_ARGS=-Xms768m -Xmx1024m -XX:MaxPermSize=256m
goto continue
一般在檔案中,有二處這樣的程式碼存在,一個是使用weblogic自帶的jrockit JDK,二是使用sun的JDK.這裡是以sun JDK為例通過修過二處的=-Xms768m -Xmx1024m 可以達到修改JVM目的所在.修改後儲存重啟即可如果做了以上設定以後還沒有修改了,那就找到 bea\user_projects\domains\domain-name\bin目錄下的setDomainEnv.cmd檔案,修改以下程式碼:
Java程式碼
- set WLS_HOME=%WL_HOME%\server
- set MEM_ARGS=-Xms512m -Xmx1024m
- set MEM_PERM_SIZE=-XX:PermSize=128m
- set MEM_MAX_PERM_SIZE=-XX:MaxPermSize=256m
set WLS_HOME=%WL_HOME%\server
set MEM_ARGS=-Xms512m -Xmx1024m
set MEM_PERM_SIZE=-XX:PermSize=128m
set MEM_MAX_PERM_SIZE=-XX:MaxPermSize=256m
修改完成以後儲存,重啟weblogic服務即可。
方法二: 直接修改user_projects\domains\domain-name\bin下的startWebLogic.cmd檔案
找到一下程式碼:
@REM JAVA_OPTIONS – Java command-line options for running the server. (These
@REM will be tagged on to the end of the JAVA_VM and
@REM MEM_ARGS)
在它下面新增一下程式碼
Java程式碼
- $ java -XX:NewSize=128m -XX:MaxNewSize=128m -XX:SurvivorRatio=8 -Xms512m -Xmx512m
$ java -XX:NewSize=128m -XX:MaxNewSize=128m -XX:SurvivorRatio=8 -Xms512m -Xmx512m
重啟weblogic服務即可。
注:在WebLogic中,為了獲得更好的效能,BEA公司推薦最小Java堆等於最大Java堆。
三、websphere
選擇伺服器-> 應用程式伺服器-> Server1-> 程序定義->Java 虛擬機器。滾動到初始堆大小和最大堆大小欄位並設定值。單擊確定以儲存更改
四、jboss
windows 版本:
修改 run.bat
1G記憶體的配置 是其實體記憶體80%
set JAVA_OPTS=” -Xms800m -Xmx800m -Xmn256m -Xss128k”
linux 版本:
修改 run.conf檔案
1g 記憶體的配置 是其實體記憶體25%
JAVA_OPTS=”-server -Xms256m -Xmx256m -Xmn80m -XX:PermSize=64m -XX:MaxPermSize=128m -Xss128k”
五、resin
resin3.0 及前期版本記憶體設定, 如下:
unix> bin/httpd.sh -Xmn100M -Xms500M -Xmx500M
win> bin/httpd.exe -Xmn100M -Xms500M -Xmx500M
install win service> bin/httpd.exe -Xmn100M -Xms500M -Xmx500M -install -Xss1m.
resin3.1,
則只需修改resin.conf,如下配置即可
<jvm-arg>-Xmx2048m</jvm-arg>
<jvm-arg>-Xms1024m</jvm-arg>
<jvm-arg>-Xss1m</jvm-arg>
<jvm-arg>-Xdebug</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
注:
在linux /unix 下或編輯 httpd.sh, 如下內容:
args=’-J-server -Xms200m -Xmx1024m -Xloggc:./log/gc.log -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true’
說明
(1)J-server -Xms200m -Xmx1024m 其中,-Xms200m 表示啟動時,初時記憶體大小,-Xmx1024m
最大記憶體佔用大小。
(2)-XX:MaxNewSize=256m -XX:MaxPermSize=256m 表示:記憶體的永久儲存區域的大小
(3)-Djava.awt.headless=true 解決在linux/unix驗證碼圖片不能顯示的問題。