Linux下 Weblogic記憶體分配
一:WebLogic配置問題:
由於WebLogic的配置問題,我們的測試出現了失敗情況。原因是為WebLogic分配的記憶體太少了。通過修改weblogic/wlserver/commom/bin/commEnv.cmd檔案來增加記憶體分配。
注意:最安全的辦法是全部修改:Xms、Xmx、PermSize、MaxPermSize
修改的部分如下:
:bea
if "%PRODUCTION_MODE%" == "true" goto bea_prod_mode
set JAVA_VM=-jrockit
set MEM_ARGS=-Xms768m -Xmx1024m
set JAVA_OPTIONS=%JAVA_OPTIONS% -Xverify:none
goto continue
:bea_prod_mode
set JAVA_VM=-jrockit
set MEM_ARGS=-Xms768m -Xmx1024m//原來是128M~256M,太小了,資料太大
goto continue
結果修改後,沒有效果。還是有失敗的情況。
發現,原來,在:bea下面還有一段配置資訊如下:
: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
將這裡的記憶體分配修改後見效。
原因是,上面對第一段程式碼是為bea自己的JVM設定的,下面的是為Sun的設定的。而WebLogic預設的是Sun的,所以出了毛病。
二,domain中的相關配置:
1,修改bea/user_projects/domains/base_domain/bin/setDomainEnv.cmd檔案.
2,修改如下幾個位置:以下藍色部分是需修改的記憶體大小
注意:最安全的辦法是全部修改:Xms、Xmx、PermSize、MaxPermSize
set MEM_ARGS=-Xms256m -Xmx512m @最主要將這兩個值改大,這是此域啟動後,虛擬機器可使用的記憶體
if "%JAVA_VENDOR%"=="Sun" ( @使用sun伺服器開發模式下的JVM配置
if "%PRODUCTION_MODE%"=="" (
set MEM_DEV_ARGS=-XX:CompileThreshold=8000 -XX:PermSize=48m
)
)
if "%JAVA_VENDOR%"=="Sun" ( @使用sun伺服器生產模式下的JVM配置
set MEM_ARGS=%MEM_ARGS% %MEM_DEV_ARGS% -XX:MaxPermSize=128m
)
if "%JAVA_VENDOR%"=="HP" ( @使用hp伺服器生產模式下的JVM配置
set MEM_ARGS=%MEM_ARGS% -XX:MaxPermSize=128m
)