1. 程式人生 > >五種常用web伺服器jvm引數設定

五種常用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

變數值:-Xms512m -Xmx512m

第三種方法:前兩種方法針對的是bin目錄下有catalina.bat的情況(比如直接解壓的Tomcat等),但是有些安裝版的Tomcat下沒有catalina.bat,這個時候可以採用如下方法,當然這個方法也是最通用的方法:執行tomcatHome/bin/tomcat5w.exe,點選Java選項卡,然後將會發現其中有這麼兩項:Initial memory poolMaximum memory pool.Initial memory pool這個就是初始化設定的記憶體的大小。Maximum memory pool這個是最大記憶體的大小 設定完了就按確定然後再重啟TOMCAT

你就會發現tomcatjvm可用的記憶體改變了。

如果把tomcat作為系統服務啟動,這時候上面設定CATALINA_OPTS 屬性的方法就不適用了,因為作為系統服務的話,系統啟動時呼叫的是 %tomcat_home%”bin”tomcat5.exe,他讀取登錄檔中的值,而不是catalina.bat的設定,因此需要修改登錄檔:解決辦法修改登錄檔HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat5\Parameters\Java中的JvmMsJvmMx

或者用上面說的第三種方法。
重起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,二是使用sunJDK.這裡是以sun JDK為例通過修過二處的=-Xms768m -Xmx1024m 可以達到修改JVM目的所在.修改後儲存重啟即可如果做了以上設定以後還沒有修改了,那就找到 bea\user_projects\domains\domain-name\bin目錄下的setDomainEnv.cmd檔案,修改以下程式碼:

Java程式碼

  1. set WLS_HOME=%WL_HOME%\server
  2. set MEM_ARGS=-Xms512m -Xmx1024m
  3. set MEM_PERM_SIZE=-XX:PermSize=128m
  4. 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程式碼

  1. $ 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驗證碼圖片不能顯示的問題。