WebLogicServer性能及調(diào)優(yōu)-調(diào)優(yōu)Java虛擬機(jī).doc_第1頁
WebLogicServer性能及調(diào)優(yōu)-調(diào)優(yōu)Java虛擬機(jī).doc_第2頁
WebLogicServer性能及調(diào)優(yōu)-調(diào)優(yōu)Java虛擬機(jī).doc_第3頁
WebLogicServer性能及調(diào)優(yōu)-調(diào)優(yōu)Java虛擬機(jī).doc_第4頁
WebLogicServer性能及調(diào)優(yōu)-調(diào)優(yōu)Java虛擬機(jī).doc_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

WebLogic Server 性能及調(diào)整 -調(diào)整 Java 虛擬機(jī)Java 虛擬機(jī)(Java virtual machine,簡稱 JVM)是一種虛擬“執(zhí)行引擎”實(shí)例,可在微處理器上執(zhí)行 Java 類文件中的字節(jié)碼。調(diào)整 JVM 的方式會(huì)影響 Weblogic Server 和應(yīng)用程序的性能。envelope下列部分討論的是 WebLogic Server 的 JVM 調(diào)整選項(xiàng): JVM 調(diào)整注意事項(xiàng) 哪種 JVM 適合您的系統(tǒng)? 垃圾收集 對(duì) IA32 平臺(tái)啟用旋轉(zhuǎn)功能 JVM 調(diào)整注意事項(xiàng)表 5-1 列出了針對(duì) WebLogic Server 的 JVM 調(diào)整的一般注意事項(xiàng):表 5-1 JVM 調(diào)整一般注意事項(xiàng) 調(diào)整因素信息引用JVM 供應(yīng)商和版本僅可使用生產(chǎn) JVM(在該 JVM 上,WebLogic Server 已通過認(rèn)證)。此版本的 WebLogic Server 僅支持兼容 J2SE 5.0 的 JVM。Supported Configurations頁會(huì)經(jīng)常更新,其中包含有關(guān)各種平臺(tái)的認(rèn)證信息。調(diào)整堆大小和垃圾收集有關(guān) WebLogic Server 堆大小調(diào)整的詳細(xì)信息,請(qǐng)參閱垃圾收集。選擇 GC(垃圾收集)方案許多 GC 方案均可用于管理系統(tǒng)內(nèi)存,可用哪種方案取決于您的應(yīng)用程序,如選擇垃圾收集方案中所述?;旌峡蛻舳?服務(wù)器 JVMWebLogic Server 支持使用不同 JVM 版本進(jìn)行客戶端和服務(wù)器部署。請(qǐng)參閱支持頁獲取混合客戶端/服務(wù)器 JVM。UNIX 線程模型選擇何種 Solaris 線程模型將對(duì) Solaris 平臺(tái)上的 JVM 性能產(chǎn)生巨大影響??蓮亩鄠€(gè)線程模型以及所選模型內(nèi)的各種同步方法中進(jìn)行選擇,但不同 JVM 的情況也有所不同。請(qǐng)參閱 Sun Microsystems 網(wǎng)站上的 Performance Documentation For the Java Hotspot Virtual Machine: Threading。 哪種 JVM 適合您的系統(tǒng)?雖然本部分著重介紹 Sun Microsystems 用于 Windows、UNIX 和 Linux 平臺(tái)的 J2SE 5.0 JVM,但請(qǐng)注意 BEA JRockit JVM 是明確為服務(wù)器端應(yīng)用程序開發(fā)的,并針對(duì) Intel 體系結(jié)構(gòu)進(jìn)行了優(yōu)化,可以確保 Java 應(yīng)用程序的可靠性、可伸縮性、可管理性和靈活性。有關(guān)在 Windows 和 Linux 平臺(tái)上使用 JRockit 的優(yōu)勢的詳細(xì)信息,請(qǐng)參閱 Introduction to JRockit JDK。有關(guān) JVM 的常規(guī)詳細(xì)信息,請(qǐng)參閱 JVM 規(guī)范簡介。有關(guān) JVM 調(diào)整相關(guān)內(nèi)容的鏈接,請(qǐng)參閱相關(guān)內(nèi)容:性能工具和信息更換到另一個(gè) JVM創(chuàng)建域時(shí),如果選擇自定義配置,則配置向?qū)?huì)顯示 WebLogic Server 安裝的 JDK 列表。在此列表中,您可以選擇希望運(yùn)行域的 JVM,然后 Configuration Wizard 將根據(jù)您的選擇配置 BEA 啟動(dòng)腳本。如果在創(chuàng)建域之后,想要使用另一 JVM,請(qǐng)參閱更改運(yùn)行服務(wù)器的 JVM。 垃圾收集垃圾收集是 VM 釋放 Java 堆中未使用的 Java 對(duì)象的過程。下列部分提供有關(guān)調(diào)整 VM 垃圾收集的信息: VM 堆大小和垃圾收集 選擇垃圾收集方案 使用詳細(xì)垃圾收集確定堆大小 指定堆大小值 自動(dòng)對(duì)內(nèi)存不足情況進(jìn)行日志記錄 手工請(qǐng)求垃圾收集 請(qǐng)求線程堆棧VM 堆大小和垃圾收集Java 程序?qū)ο蟠鎯?chǔ)在 Java 堆中。Java 堆是包括活動(dòng)對(duì)象、無效對(duì)象及可用內(nèi)存的倉庫。如果某對(duì)象不再能夠在運(yùn)行的程序中通過任何指針進(jìn)行訪問,則會(huì)將該對(duì)象視為“垃圾”,可以進(jìn)行收集。將進(jìn)行垃圾收集所耗費(fèi)的時(shí)間調(diào)整為執(zhí)行時(shí)間的 5% 以下,這是一種最佳實(shí)踐。JVM 堆大小決定 VM 收集垃圾的頻率及所耗費(fèi)的時(shí)間??梢越邮艿睦占俾室驊?yīng)用程序而異,并且應(yīng)在分析垃圾收集的實(shí)際時(shí)間和頻率后進(jìn)行調(diào)整。如果將堆大小設(shè)置得很大,則執(zhí)行完全垃圾收集的速度將會(huì)較慢,但收集頻率會(huì)較低。如果根據(jù)內(nèi)存需求設(shè)置堆大小,則完全垃圾收集的速度會(huì)較快,但收集頻率會(huì)較高。調(diào)整堆大小的目的是將 JVM 進(jìn)行垃圾收集所耗費(fèi)的時(shí)間縮到最短,同時(shí)將 WebLogic Server 在某給定時(shí)間內(nèi)可以處理的客戶端數(shù)增至最大。要確保在基準(zhǔn)測試期間得到最佳性能,可將堆大小值設(shè)置得很大,以確保不會(huì)在整個(gè)基準(zhǔn)測試過程中進(jìn)行垃圾收集。如果堆空間不足,則可能會(huì)出現(xiàn)以下 Java 錯(cuò)誤:java.lang.OutOfMemoryError java.lang.OutOfMemoryError Exception in thread main要修改堆空間值,請(qǐng)參閱指定堆大小值。要配置 WebLogic Server 以便在堆空間用盡時(shí)自動(dòng)進(jìn)行檢測,以及處理服務(wù)器中內(nèi)存不足的情況,請(qǐng)參閱自動(dòng)對(duì)內(nèi)存不足情況進(jìn)行日志記錄和指定堆大小值。選擇垃圾收集方案可從若干垃圾收集方案中進(jìn)行選擇,以管理系統(tǒng)內(nèi)存,所選擇的方案取決于所使用的 JVM。例如,某些垃圾收集方案更適用于給定類型的應(yīng)用程序。了解應(yīng)用程序的工作負(fù)荷以及 JVM 所用的各種垃圾收集算法之后,就可以優(yōu)化垃圾收集的配置。請(qǐng)參閱下列鏈接,以查看 JVM 垃圾收集選項(xiàng)的深入討論: 有關(guān) Sun 的 HotSpot VM 可用的垃圾收集方案的概述,請(qǐng)參閱 Tuning Garbage Collection with the 5.0 Java Virtual Machine。 有關(guān)可用收集方案的詳盡說明,請(qǐng)參閱 Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1。 有關(guān) BEA JRockit JDK 可用的垃圾收集方案的討論,請(qǐng)參閱。 對(duì)于從 HP 視角來看有關(guān)垃圾收集的某些觀點(diǎn),請(qǐng)參閱 。使用詳細(xì)垃圾收集確定堆大小通過詳細(xì)垃圾收集選項(xiàng) (verbosegc),能夠精確測量向垃圾收集投入了多少時(shí)間和資源。要確定最有效的堆大小,請(qǐng)啟用詳細(xì)垃圾收集,然后將其輸出重定向到日志文件,以便進(jìn)行診斷。此過程的大致步驟如下:1 在運(yùn)行應(yīng)用程序時(shí)監(jiān)視 WebLogic Server 在最大負(fù)載下的性能。1 用 -verbosegc 選項(xiàng)對(duì) JVM 啟用詳細(xì)垃圾收集輸出,然后將標(biāo)準(zhǔn)錯(cuò)誤和標(biāo)準(zhǔn)輸出都重定向到日志文件。 這會(huì)將線程轉(zhuǎn)儲(chǔ)信息存儲(chǔ)到相應(yīng)的 WebLogic Server 信息性消息和錯(cuò)誤消息上下文中,從而提供更有用的日志以便進(jìn)行診斷。例如,在 Windows 和 Solaris 中,輸入下列代碼:% java -ms32m -mx200m -verbosegc -classpath $CLASSPATH-Dweblogic.Name=%SERVER_NAME% -Dbea.home=C:bea-Dweblogic.management.username=%WLS_USER%-Dweblogic.management.password=%WLS_PW%-Dweblogic.management.server=%ADMIN_URL%-Dweblogic.ProductionModeEnabled=%STARTMODE%-Djava.security.policy=%WL_HOME%serverlibweblogic.policy weblogic.Server logfile.txt 2&1其中的 logfile.txt 2&1 命令可將標(biāo)準(zhǔn)錯(cuò)誤和標(biāo)準(zhǔn)輸出都重定向到日志文件。在 HPUX 中,可使用以下選項(xiàng)將 stderr stdout 重定向到單個(gè)文件:-Xverbosegc:file=/tmp/gc$.out其中 $ 可以映射到 Java 進(jìn)程的進(jìn)程 ID (PID)。因?yàn)檩敵鲋邪ㄟ\(yùn)行垃圾收集時(shí)的時(shí)間戳,所以可推斷出進(jìn)行垃圾收集的頻率。1 分析下列數(shù)據(jù)點(diǎn): 1 多長時(shí)間進(jìn)行一次垃圾收集?在 weblogic.log 文件中,比較垃圾收集的時(shí)間戳。1 進(jìn)行垃圾收集花費(fèi)了多長時(shí)間?完全垃圾收集耗時(shí)不應(yīng)超過 3 到 5 秒。1 平均內(nèi)存占用量為多少?換句話說,每當(dāng)完全垃圾收集執(zhí)行完畢后,堆占用多少內(nèi)存?如果堆始終占用 15%,則可以將堆大小設(shè)置得更小些。2 檢查新一代堆大小 (Sun) 或溫床大小 (BEA Jrockit)。 對(duì)于 BEA Jrockit:請(qǐng)參閱 BEA JRockit JVM 堆大小選項(xiàng)。 對(duì)于 Sun:請(qǐng)參閱 Java HotSpot VM 堆大小選項(xiàng)。3 確保堆大小不超過系統(tǒng)中可用 RAM 的大小。 在不會(huì)導(dǎo)致系統(tǒng)向磁盤“交換”頁面的前提下,使用盡可能大的堆大小。系統(tǒng)中可用 RAM 的大小取決于硬件配置,以及在計(jì)算機(jī)中運(yùn)行進(jìn)程所需的內(nèi)存量。確定系統(tǒng)中的可用 RAM 量時(shí),可求助于系統(tǒng)管理員。4 如果發(fā)現(xiàn)系統(tǒng)收集垃圾所耗費(fèi)的時(shí)間太長(分配的虛擬內(nèi)存已超過 RAM 的處理能力),請(qǐng)減小堆大小。 通常應(yīng)將可用 RAM(未被操作系統(tǒng)或其他進(jìn)程占用)的 80% 用于 JVM。5 如果發(fā)現(xiàn)還有大量的可用 RAM,則在計(jì)算機(jī)中運(yùn)行更多 WebLogic Server 實(shí)例。 記住,調(diào)整堆大小的目的是將 JVM 進(jìn)行垃圾收集所耗費(fèi)的時(shí)間縮到最短,同時(shí)將 WebLogic Server 在某給定時(shí)間內(nèi)可以處理的客戶端數(shù)增至最大。注意:JVM 供應(yīng)商可能會(huì)提供用于打印詳盡的垃圾收集報(bào)告的其他選項(xiàng)。例如,可在關(guān)閉程序時(shí)使用 BEA JRockit JVM -Xgcreport 選項(xiàng)打印詳盡的垃圾收集報(bào)告,請(qǐng)參閱“。指定堆大小值可供 JVM 使用的 Java 堆大小對(duì)系統(tǒng)性能具有較大影響。本部分介紹用于定義堆大小值的命令行選項(xiàng)。每當(dāng)啟動(dòng) WebLogic Server 實(shí)例時(shí),均需指定 Java 堆大小值。在 java 命令行中,或通過修改隨 WebLogic 分發(fā)提供的示例啟動(dòng)腳本(用于啟動(dòng) WebLogic Server)中的默認(rèn)值,均可執(zhí)行上述操作。 堆大小調(diào)整提示 BEA JRockit JVM 堆大小選項(xiàng) Java HotSpot VM 堆大小選項(xiàng)堆大小調(diào)整提示以下部分提供了調(diào)整 VM 堆大小的一般準(zhǔn)則: 堆大小應(yīng)設(shè)置為一個(gè)適當(dāng)?shù)闹担瑥亩?VM 使用的最大內(nèi)存量不超過可用物理 RAM 量。如果超過該值,則 OS 會(huì)開始分頁,性能也會(huì)顯著降低。VM 使用的內(nèi)存始終多于堆大小。除了堆大小設(shè)置,還要分配內(nèi)部 VM 功能、VM 之外的本地庫和永久代內(nèi)存(僅適用于 Sun VM:存儲(chǔ)類和方法所需的內(nèi)存)所需的內(nèi)存。 使用分代式垃圾收集方案時(shí),溫床大小不應(yīng)超過 Java 堆總大小的一半。通常情況下,堆大小的 25% 到 40% 就已足夠。 在生產(chǎn)環(huán)境中,將最小堆大小和最大堆大小設(shè)置為同一值,可以避免浪費(fèi)用于時(shí)常調(diào)整堆大小所需的 VM 資源。這也適用于新一代堆大小 (Sun) 或溫床大小 (BEA Jrockit)。BEA JRockit JVM 堆大小選項(xiàng)雖然 BEA JRockit 可以自動(dòng)進(jìn)行試探性堆大小調(diào)整,但這并不是所有應(yīng)用程序的最佳選擇。大多數(shù)情況下,最佳性能是通過調(diào)整每種應(yīng)用程序的 VM 實(shí)現(xiàn)的,方法是調(diào)整表 5-2 中所示的堆大小選項(xiàng)。表 5-2 BEA JRockit JVM 堆大小選項(xiàng)任務(wù)選項(xiàng)注釋設(shè)置溫床-Xns最好嘗試將溫床設(shè)置得盡可能大,同時(shí)還要使垃圾收集暫停時(shí)間縮短至可以接受的程度。應(yīng)用程序創(chuàng)建大量臨時(shí)對(duì)象時(shí),這尤其重要。溫床的最大大小不能超過最大堆大小的 95%。設(shè)置最小堆大小-XmsBEA 建議將最小堆大小 (-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這樣,瓶頸檢測器會(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í)例的最小和最大堆大小。有關(guān)針對(duì) WebLogic 的 JRockit JVM 設(shè)置適當(dāng)?shù)亩汛笮〉脑敿?xì)信息,請(qǐng)參閱 Tuning the JRockit JVM。其他 BEA JRockit VM 選項(xiàng)BEA 提供可以提高 BEA JRockit VM 性能的其他命令行選項(xiàng)。有關(guān)詳細(xì)信息,請(qǐng)參閱 。Java HotSpot VM 堆大小選項(xiàng)通過分別調(diào)整每個(gè)應(yīng)用程序,可以實(shí)現(xiàn)最佳性能。但是,在啟動(dòng) WebLogic Server 時(shí)配置表 5-3 中列出的 Java HotSpot VM 堆大小選項(xiàng),可以提高大多數(shù)應(yīng)用程序的性能。這些選項(xiàng)因體系結(jié)構(gòu)和操作系統(tǒng)而異。有關(guān)平臺(tái)特定的 JVM 調(diào)整選項(xiàng),請(qǐng)參閱供應(yīng)商提供的文檔。表 5-3 Java 堆大小選項(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)參閱 /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í)例的最小和最大堆大小。其他 Java HotSpot VM 選項(xiàng)Sun 提供了可以提高 VM 性能的其他標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)命令行選項(xiàng)。使用這些選項(xiàng)的方式取決于應(yīng)用程序的編碼方式。對(duì)客戶端和服務(wù)器 JVM 進(jìn)行測試,以確定更適用于特定應(yīng)用程序的選項(xiàng)。Sun Microsystems 的 Java HotSpot VM Options 文檔提供有關(guān)可以影響 Java HotSpot 虛擬機(jī)性能特征的命令行選項(xiàng)和環(huán)境變量的信息。有關(guān) HotSpot VM 選項(xiàng)的其他示例,請(qǐng)參閱: Standard Options for Windows (Win32) VMs Standard Options for Solaris VMs. Standard Options for Linux VMs.Sun Microsystems 的 Java Virtual Machine 文檔詳細(xì)論述了 J2SE 5.0 Java 虛擬機(jī)的客戶端和服務(wù)器實(shí)現(xiàn)。自動(dòng)對(duì)內(nèi)存不足情況進(jìn)行日

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論