[小筆記] WebLogic MEM_ARGS 參數設定
WebLogic用了一段時間之後,偶爾總是會出現OutOfMemory,這對測試環境來說,還只要Restart Server 就可以解決,但是在正式環境上出現可就麻煩大了,因為一Restart Server 所有User就都無法使用系統,所以MEM_ARGS這個參數的設定就很重要。
這是我SIT目前的設定,依不同的系統做不同的設定
MEM_ARGS="-Xms768m -Xmx768m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:MaxPermSize=384m -XX:PermSize=384m -XX:SurvivorRatio=6 -XX:+DisableExplicitGC"
提示:以上記得要寫成一行。
Heap Size設定
-Xms 設定一開始的Heap Size。
-Xmx 設定Heap Size的最大值 (最好是不是超過實體記憶體的80%)。
-XX:NewSize 調整JVM的Young Generation的size大小。
-XX:MaxNewSize 調整JVM的Young Generation的size的最大值。
-Xmn Young Generation的size,NewSize 和 MaxNewSize設定為一樣。
-XX:NewRatio 控制Young generation的比例,如-XX:NewRatio=3表示Young generation與Old generation的比例為1:3,即Young generation佔1/4,Old generation佔3/4。
Young generation又被分成三部分,第一部分Eden,用於生成新的Object。另外兩個部分為Survivor空間,當Eden用完後,會將 Objects複製到"SS1",當SS1空間滿了的時候,再被複製到"SS2",Objects會在Survivor空間不斷的被複製,直到他滿足條件進入Old generation止。
提示:如果將Heap Size設的越大,GC的週期就會拉長,而且每次GC的時間也會越長。
PermGen space
-XX:PermSize 這一部分是用於存放Class和Meta的訊息,Class在被 Load的時候被放入PermGen space區域,它和和存放Instance的Heap區域不同,GC(Garbage Collection)不會在主程式運行期間對PermGen space進行清理,所以如果你的APP會LOAD很多CLASS的話,就很可能出現PermGen space錯誤。這種錯誤常見在web伺服器對JSP進行pre compile的時候。
整個記憶體配置會像這樣
-XX:+DisableExplicitGC 加了這個參數會停止掉WLS或是程式內直接呼叫GC,減少不必要的GC,將GC交由JVM去執行。
Garbage Collection描述:
Garbage Collection分多種等級,0級就是全部的垃圾回收(Full GC),會回收Old generation中的垃圾;1級或以上為部分垃圾回收,只會回收Young中的垃圾,會發生OutOfMemory通常是產生於Old generation或Perm段垃圾回收後,仍然沒有記憶體空間來存放新的Java 物件的情況。
當一個URL被訪問時,記憶體的配置過程如下:
A. JVM會試圖為Java的相關對象在Eden中初始化一塊記憶體空間
B. 當Eden空間足夠時,記憶體配置結束。否則到下一步
C. JVM會試圖釋放在Eden中所有不活躍的對象(這是屬於1或更高級的垃圾回收);釋放後若Eden空間仍然不足以放入新對象,則會試圖將部分Eden中活躍的對象放入Survivor區/OLD區
D. Survivor區被用來作為Eden及OLD的中間交換區域,當OLD區空間足夠,Survivor區的對象會被移到Old區,否則被保留在Survivor區
E. 當OLD區空間不足時,JVM會在OLD區進行完全的垃圾收集(0級)
F. 完全垃圾收集後,若Survivor及OLD區仍然無法存放從Eden複製過來的部分對象,就會導致JVM無法在Eden區為新的對象配置出記憶體區塊,產生"out of memory的錯誤"
以我的設定為例:
MEM_ARGS="-Xms768m -Xmx768m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:MaxPermSize=384m -XX:PermSize=384m -XX:SurvivorRatio=6 -XX:+DisableExplicitGC"
在上面的例子中:
YOUNG+OLD: 768M
YOUNG: 256M
Perm: 384M
Eden: YOUNG*6/(6+1+1)=192M
Survivor: YOUNG*1/(6+1+1)=32M
Heap Size: YOUNG+OLD+Perm=1024M
Copy From
http://prince1005.spaces.live.com/blog/cns!45B42DFAD425C0D4!762.entry
分享到:
相关推荐
WLS_MEM_ARGS_64BIT="-Xms4096m -Xmx4096m" export WLS_MEM_ARGS_64BIT # 32位系统JVM内存配置 WLS_MEM_ARGS_32BIT="-Xms4096m -Xmx4096m" export WLS_MEM_ARGS_32BIT else # 其他供应商JVM内存配置 WLS_...
MEM_ARGS="${MANAGERED_MEM_ARGS}" echo "检测到从被管 Server 来的设置内存参数:${MANAGERED_MEM_ARGS}" echo "设置方法:在 startManagedWebLogic4000X.sh 中设置{MANAGERED_MEM_ARGS 值即可" fi ``` 通过以上...
WebLogic 10.3.6 补丁(Java 反序列化漏洞更新步骤) WebLogic 10.3.6 补丁是一种安全补丁,旨在修复 Java 反序列化...* 解决方法:编辑 bsu.sh 文件,修改 MEM_ARGS 变量的值为 `MEM_ARGS="-Xms512m -Xmx1024m"`。
set MEM_ARGS=-Xms512m -Xmx768m Linux/Unix 环境: MEM_ARGS="-Xms512m -Xmx768m" 其中,-Xms512m 设置初始 heap 大小为 512MB,-Xmx768m 设置最大 heap 大小为 768MB。 方法二:修改 commEnv.* 文件中的设置 ...
set WLS_MEM_ARGS_64BIT=-Xms256m -Xmx512m set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m ) else ( set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx512m set WLS_MEM_ARGS_32BIT=-Xms512m -Xmx512m ) set MEM_PERM_SIZE_...
- `MEM_ARGS=-Xms512m–Xmx512m-XX:MaxPermSize=256m` - HP JDK: - `MEM_ARGS="-Xms512m–Xmx512m-XX:MaxPermSize=256m"` - IBM JDK: - `MEM_ARGS="-Xms512m–Xmx1024m"` - **最大并发用户数30~50**: - 内存...
set WLS_MEM_ARGS_64BIT=-Xms1024m-Xmx2048m set WLS_MEM_ARGS_32BIT=-Xms1024m-Xmx2048m ) …… set MEM_PERM_SIZE_32BIT=-XX:PermSize=128m …… set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=256m ...
- `MEM_ARGS`设置Weblogic的内存分配。 - 继续修改`installSvc.cmd`文件,将原始的`CLASSPATH`设置替换为包含ANTLR的相关库。 完成上述步骤后,执行`installSvc.cmd`脚本,Weblogic服务器将被注册为Windows服务...
@rem Set MEM_ARGS to the memory args you want to pass to java. @rem For instance: @rem set MEM_ARGS=-Xms32m-Xmx200m setMEM_ARGS=-Xms1024m-Xmx1024m-XX:MaxPermSize=128m -XX:MaxNewSize=384m-XX:...
`setDomainEnv.cmd`是WebLogic域最重要的环境配置脚本,它定义了服务器启动时所需的环境变量,如`WL_HOME`(WebLogic安装目录)、`JAVA_VM`(选择的Java虚拟机)、`JAVA_HOME`(Java安装位置)、`USER_MEM_ARGS`...
这里的`WLS_USER`和`WLS_PW`定义了WebLogic管理服务器的用户名和密码,`MEM_ARGS`设置了JVM内存分配参数,用于控制WebLogic服务器的启动内存大小。 完成以上步骤后,你的WebLogic域就已经配置好了。你可以通过运行`...
set WLS_MEM_ARGS_64BIT=-Xms2048m-Xmx2048m set WLS_MEM_ARGS_32BIT=-Xms2048m-Xmx2048m ) else ( set WLS_MEM_ARGS_64BIT=-Xms2048m-Xmx2048m set WLS_MEM_ARGS_32BIT=-Xms2048m-Xmx2048m ) set MEM_MAX_PERM...
export USER_MEM_ARGS="-Xms1024m -Xmx2048m -XX:MaxPermSize=512m" export TMP_PATH="/home/middleware/bea/user_projects/domains/domain9001/lib" export POST_CLASSPATH="${TMP_PATH}/ifxjdbc.jar:${TMP_PATH}/...
set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx1024m set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m ) else ( set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx1024m set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m ) set MEM_PERM_...
set MEM_ARGS=-Xms32m -Xmx200m -XX:MaxPermSize=128m ``` - 修改为: ```cmd set MEM_ARGS=-Xms256m -Xmx512m -XX:MaxPermSize=256m ``` - 其中: - `-Xms`表示JVM启动时的初始堆内存大小; - `-Xmx`表示...
### Weblogic内存溢出优化设置详解 #### 一、解决中文显示问题 在Weblogic环境中,如果遇到中文...%MEM_ARGS% %JAVA_OPTIONS% -Ddefault.client.encoding=GBK -Dfile.encoding=GBK -Duser.language=Zh -Duser.region=...