BEA JRockit JVM 堆大小選項(xiàng)
BEA WebLogic Server是BEA WebLogic產(chǎn)品系列的最新產(chǎn)品。BEA WebLogic產(chǎn)品系列包括WebLogic Portal、WebLogic Integration、WebLogic Workshop和BEA JRockit。
WebLogic Server 的 Java 參數(shù)需要在腳本中修改某些默認(rèn) Java 值才能滿足您的環(huán)境和應(yīng)用程序的需要。
BEA WebLogic Server帶有獨(dú)特的企業(yè)級(jí)內(nèi)核,提供了集群、安全、管理、高速緩存和虛擬器技術(shù)等特性,與目前市場(chǎng)上的其他應(yīng)用服務(wù)器相比。
BEA WebLogic Server 9.0速度更快、伸縮性更強(qiáng)、更可靠,而且,其高性能內(nèi)核能夠支持多種編程模式,使開發(fā)人員能夠靈活地選擇符合自身需求的應(yīng)用框架。
WebLogic Server 9.0支持J2EE 1.4、Spring、Apache Beehive、Web服務(wù)和多種其他框架,所有這些功能都有助于降低建立和維護(hù)應(yīng)用所需要的設(shè)備和人力資源成本,減少與IT項(xiàng)目相關(guān)的時(shí)間與成本。
1)更改 JAVA_HOME
變量的值。
指定要使用的 SDK 的頂級(jí)目錄的絕對(duì)路徑名。例如,c:\bea\jrockit90
。
在 Windows 或 Linux 平臺(tái)上,BEA Systems 建議使用下列 JVM:
對(duì)于開發(fā)模式,使用帶有 HotSpot Client JVM 的 Sun SDK。
對(duì)于生產(chǎn)模式,使用 BEA JRockit® SDK。該 SDK 提供最優(yōu)運(yùn)行性能,與其他 SDK 相比,其初次啟動(dòng)周期可能需要較長(zhǎng)時(shí)間。
2)更改 JAVA_VENDOR
變量的值。
BEA
表明您使用的是 JRockit SDK。它僅在支持 Jrockit 的平臺(tái)上有效。
Sun
表明您使用的是 Sun SDK。
HP
和 IBM
表明您使用的是 Hewlett Packard 或 IBM 提供的 SDK。這些值僅在支持 HP 或 IBM SDK 的平臺(tái)上有效。
3)如果堆空間不足,則可能會(huì)出現(xiàn)以下 Java 錯(cuò)誤:
java.lang.OutOfMemoryError <<no stack trace available>>
java.lang.OutOfMemoryError <<no stack trace available>>
Exception in thread "main"
此時(shí)需要修改堆空間值,堆大小調(diào)整提示 ,以下部分提供了調(diào)整 VM 堆大小的一般準(zhǔn)則:
堆大小應(yīng)設(shè)置為一個(gè)適當(dāng)?shù)闹?,從而?VM 使用的最大內(nèi)存量不超過(guò)可用物理 RAM 量。如果超過(guò)該值,則 OS 會(huì)開始分頁(yè),性能也會(huì)顯著降低。VM 使用的內(nèi)存始終多于堆大小。除了堆大小設(shè)置,還要分配內(nèi)部 VM 功能、VM 之外的本地庫(kù)和永久代內(nèi)存(僅適用于 Sun VM:存儲(chǔ)類和方法所需的內(nèi)存)所需的內(nèi)存。
使用分代式垃圾收集方案時(shí),溫床大小不應(yīng)超過(guò) Java 堆總大小的一半。通常情況下,堆大小的 25% 到 40% 就已足夠。
在生產(chǎn)環(huán)境中,將最小堆大小和最大堆大小設(shè)置為同一值,可以避免浪費(fèi)用于時(shí)常調(diào)整堆大小所需的 VM 資源。這也適用于新一代堆大小 (Sun) 或溫床大小 (BEA Jrockit)。
任務(wù)
|
選項(xiàng)
|
注釋
|
設(shè)置溫床
|
-Xns
|
最好嘗試將溫床設(shè)置得盡可能大,同時(shí)還要使垃圾收集暫停時(shí)間縮短至可以接受的程度。應(yīng)用程序創(chuàng)建大量臨時(shí)對(duì)象時(shí),這尤其重要。
溫床的最大大小不能超過(guò)最大堆大小的 95%。
|
設(shè)置最小堆大小
|
-Xms
|
BEA 建議將最小堆大小 (-Xms) 與最大堆大小 (-Xmx) 設(shè)置為相同的值,以便將垃圾收集的消耗降至最低。
|
設(shè)置最大堆大小
|
-Xmx
|
如果與活動(dòng)數(shù)據(jù)量相比,最大堆大小值設(shè)置得較低,則會(huì)因強(qiáng)制進(jìn)行頻繁垃圾收集而降低性能。
|
設(shè)置垃圾收集
|
-Xgc: parallel
|
|
盡早在運(yùn)行 Java 應(yīng)用程序時(shí)執(zhí)行自適應(yīng)優(yōu)化。
|
-XXaggressive:memory
|
這樣,瓶頸檢測(cè)器會(huì)在開始時(shí)以較高的頻率運(yùn)行,然后逐漸降低頻率。此選項(xiàng)還可以指示 BEA JRockit 主動(dòng)使用可用內(nèi)存。
|
例如,從 java
命令行啟動(dòng) WebLogic Server 實(shí)例時(shí),可使用以下命令指定 BEA JRockit VM 堆大小值:$ java -Xns10m -Xms512m -Xmx512m
這些值的默認(rèn)大小的度量單位是字節(jié)。該值后附加字母“k”或“K”表示 KB;附加“m”或“M”表示 MB;附加“g”或“G”表示 GB。上例將 10 MB 內(nèi)存分配給溫床堆大小,將 512 MB 內(nèi)存分配給運(yùn)行在 JVM 中的 WebLogic Server 實(shí)例的最小和最大堆大小。
Java HotSpot VM 堆大小選項(xiàng)
任務(wù)
|
選項(xiàng)
|
注釋
|
設(shè)置新一代堆大小
|
-XX:NewSize
|
將 -XX:NewSize 的大小設(shè)置為堆大小的四分之一,這是一條通用規(guī)則。如果存在大量短期對(duì)象,則增大此選項(xiàng)的值。
在增加處理器的同時(shí),一定要增加新一代堆大小。內(nèi)存分配可以并行進(jìn)行,但垃圾收集不可并行進(jìn)行。
|
設(shè)置最大新一代堆大小
|
-XX:MaxNewSize
|
設(shè)置新一代堆大小的上限。
|
設(shè)置新堆大小比率
|
-XX:SurvivorRatio
|
新一代區(qū)域分為三個(gè)子區(qū):Eden 和兩個(gè)大小相等的生存空間。
配置 Eden/生存空間大小的比率。嘗試將此值設(shè)置為 8,然后監(jiān)視垃圾收集情況。
|
設(shè)置最小堆大小
|
-Xms
|
將最小堆大小 (-Xms) 與最大堆大小 (-Xmx) 設(shè)置為相同的值,以便將垃圾收集的消耗降至最低,這是一條通用規(guī)則。
|
設(shè)置最大堆大小
|
-Xmx
|
設(shè)置堆大小的上限。
|
設(shè)置大堆和私有共享內(nèi)存
|
-XX:+UseISM -XX:+AggressiveHeap
|
請(qǐng)參閱 http://java./docs/hotspot/ism.html
|
例如,從 java
命令行啟動(dòng) WebLogic Server 實(shí)例時(shí),可使用以下命令指定 HotSpot VM 堆大小值: $ java -XX:NewSize=128m -XX:MaxNewSize=128m -XX:SurvivorRatio=8 -Xms512m -Xmx512m
這些值的默認(rèn)大小的度量單位是字節(jié)。該值后附加字母“k”或“K”表示 KB;
附加“m”或“M”表示 MB;附加“g”或“G”表示 GB。上例將 128 MB 內(nèi)存分配給新一代堆大小和最大新一代堆大小,將 512 MB 內(nèi)存分配給運(yùn)行在 JVM 中的 WebLogic Server 實(shí)例的最小和最大堆大小。
BEA WebLogic產(chǎn)品系列提供的產(chǎn)品和服務(wù)旨在幫助用戶利用開放標(biāo)準(zhǔn)、Web服務(wù)和SOA,更快地實(shí)現(xiàn)關(guān)鍵業(yè)務(wù)應(yīng)用的價(jià)值。
除了BEA WebLogic Server,BEA WebLogic平臺(tái)還包括了BEA WebLogic Portal、BEA WebLogic Integration、BEA WebLogic Workshop和BEA JRockit。