請利用這個頁面來檢視和變更應用程式伺服器程序的 Java 虛擬機器 (JVM) 配置設定。
若要檢視這個管理主控台頁面,請連接至管理主控台,瀏覽至 Java 虛擬機器畫面。
如果是 i5/OS 和分散式平台,請按一下伺服器 > 伺服器類型 > WebSphere Application Server > server_name。
之後,在「伺服器基礎架構」區段中,按一下 Java 和程序管理 > 程序定義 > Java 虛擬機器
應用程式伺服器 | 按一下伺服器 > 伺服器類型 > WebSphere Application Server > server_name。 之後,在「伺服器基礎架構」區段中,按一下 Java 和程序管理 > 程序定義 > 控制 > Java 虛擬機器 |
部署管理程式 | 按一下系統管理 > 部署管理程式。 之後,在「伺服器基礎架構」區段中,按一下 Java 和程序管理 > 程序定義 > 控制 > Java 虛擬機器 |
節點代理程式 | 按一下系統管理 > 節點代理程式> node_agent。 之後,在「伺服器基礎架構」區段中,按一下 Java 和程序管理 > 程序定義 > Java 虛擬機器 |
應用程式伺服器 | 伺服器 > 伺服器類型 > WebSphere Application Server > server_name。 之後,在「伺服器基礎架構」區段中,按一下 Java 和程序管理 > 程序定義 > Java 虛擬機器 |
部署管理程式 | 系統管理 > 部署管理程式。 之後,在「伺服器基礎架構」區段中,按一下 Java 和程序管理 > 程序定義 > Java 虛擬機器 |
節點代理程式 | 系統管理 > 節點代理程式 > node_agent。 之後,在「伺服器基礎架構」區段中,按一下 Java 和程序管理 > 程序定義 > Java 虛擬機器 |
指定 Java 虛擬機器程式碼在其中尋找類別的標準類別路徑。
如果您需要將類別路徑新增到這個欄位中,請在個別的表格列中,輸入每個類別路徑項目。您不需要在每個項目的尾端加上冒號或分號。
資料類型 | 字串 |
指定 JVM 程式碼的引導類別和資源。 這個選項只適用於支援引導類別和資源的 JVM 指示。
如果您需要將類別路徑新增到這個欄位中,請在單一表格列中,輸入每個類別路徑項目。您不需要在每個項目的尾端加上冒號或分號。
如果您需要將多個類別路徑新增到這個欄位中,您可以用冒號 (:) 或分號 (;) 來區隔這些路徑,這會隨著 JVM 所在的作業系統而不同。
如果您需要將多個類別路徑新增到這個欄位中,您可以用冒號 (:) 或分號 (;) 來區隔這些路徑,這會隨著節點所在的作業系統而不同。
指定是否要對類別載入使用詳細除錯輸出。預設值是不啟用「詳細類別載入」。
如果啟用「詳細類別載入」,除錯輸出會傳到原生程序日誌之一。
資料類型 | 布林 |
預設值 | false |
指定是否要對記憶體回收使用詳細除錯輸出。預設值是不啟用詳細記憶體回收。
如果啟用「詳細記憶體回收」,除錯輸出會傳到原生程序日誌之一。
,
資料類型 | 布林 |
預設值 | false |
當啟用這個欄位時,每次執行記憶體回收器,都會將報告寫入輸出串流中。 這份報告應該會指出 Java 記憶體回收程序的運作方式。
83.29/3724.32 * 100 = 2.236 %
如果您在回收記憶體上花了超出 5% 的時間,且經常回收記憶體,您可能需要增加 Java 資料堆大小。
若要判斷配置的資料堆是否擴增,請在每次記憶體回收循環之後,查看仍未配置的資料堆百分比,驗證這個百分比未持續下降。 如果可用空間的百分比持續下降,就表示在各次回收記憶體之間,資料堆在逐步擴增大小。 這個狀況可能表示應用程式洩漏記憶體。
另外在 z/OS 平台上,您也可以發出 MVS 主控台指令 modify display、jvmheap 來顯示 JVM 資料堆資訊。
另外,您也可以檢查伺服器活動及間隔 SMF 記錄。
JVM 資料堆大小也會提供給 PMI,且可以利用 Tivoli 效能檢視器來監視。
指定是否要對原生方法呼叫使用詳細除錯輸出。預設值是不啟用詳細 Java 原生介面 (JNI) 活動。
資料類型 | 布林 |
預設值 | false |
指定 JVM 程式碼所能使用的起始資料堆大小 (MB)。如果這個欄位保留空白,便使用預設值。
如果是 z/OS,控制器的預設起始資料堆大小是 48 MB,服務者的預設起始資料堆大小是 128 MB。這些預設值適用於 31 位元和 64 位元配置。
如果是 i5/OS 和分散式平台,預設起始資料堆大小是 50 MB。
增加這項設定可以改進啟動作業。會減少回收記憶體次數,效能可增進 10%。
增加 Java 資料堆大小可以改進通訊量,直到資料堆變成太大,無法常駐於實體記憶體為止。 如果資料堆大小超出可用的實體記憶體,且發生分頁,效能會明顯退化。
指定 JVM 程式碼所能使用的資料堆大小上限(以 MB 為單位)。 如果這個欄位保留空白,便使用預設值。
如果是 z/OS,預設資料堆大小上限是 256 MB,這個預設值適用於 31 位元和 64 位元配置。
增加資料堆大小上限設定可以改進啟動作業。 當增加資料堆大小上限時,會減少回收記憶體次數,效能可增進 10%。
增加這項設定通常可以改進通訊量,直到資料堆變成太大,無法常駐於實體記憶體為止。 如果資料堆大小超出可用的實體記憶體,且發生分頁,效能會明顯退化。 因此,指定給這個內容的值要讓資料堆包含在實體記憶體內,這一點非常重要。
若要防止分頁,請將這個內容的值指定成容許每個處理器至少配置 256 MB 實體記憶體,每部應用程式伺服器至少配置 512MB 實體記憶體。
如果處理器使用率因分頁而偏低,可能的話,請增加可用記憶體,而不是增加資料堆大小上限。
增加資料堆大小上限,效能可能會降低,而不是增進。
如果是 i5/OS,當這個內容設為 0 時,只有在到達記憶體回收器臨界值時,才會執行記憶體回收器。
當指定非 0 的值時,每當資料堆大小到達指定的大小上限時,都會執行記憶體回收器。
不過,與一般記憶體回收器不同,如果到達大小上限,所有應用程式執行緒都必須等到記憶體回收程序完成之後,才能繼續執行。
這個狀況可能會導致暫停令人不悅。
因此,請利用資料堆大小上限來作為安全網路,用來處理資料堆非預期地成長,以及確保資料堆不會成長到超出可用的記憶體。
在正常情況之下,絕不應到達指定的資料堆大小上限。
指定是否使用 HProf Profiler 支援。 若要使用另一個 Profiler,請利用 HProf 引數設定來自訂 Profiler 設定。 預設值是不啟用 HProf Profiler 支援。
如果將執行 HProf 內容設成 true,您必須將指令行 Profiler 引數指定成 HProf 引數內容的值。
資料類型 | 布林 |
預設值 | false |
指定要傳遞給啟動應用程式伺服器程序的 JVM 程式碼之指令行側寫程式引數。 當啟用 HProf Profiler 支援時,您就可以指定引數。
只在「執行 HProf」內容設成 true 時,才需要 HProf 引數。
指定是否在除錯模式下執行 JVM。預設值是不啟用除錯模式支援。
如果將除錯模式內容設成 true,您必須將指令行除錯引數指定成除錯引數內容的值。
資料類型 | 布林 |
預設值 | false |
指定要傳遞給啟動應用程式伺服器程序的 JVM 程式碼之指令行除錯引數。 當除錯模式內容設為 true 時,您就可以指定引數。
如果您在相同節點的多部應用程式伺服器上啟用除錯功能,請驗證位址引數並未指定相同的值。 位址引數定義用來除錯的埠。 如果兩部啟用了除錯的伺服器配置成使用相同的除錯埠,則可能無法適當啟動伺服器。 比方說,兩部伺服器可能都仍配置了除錯引數 address=7777,也就是除錯位址引數的預設值。
如果您在多部應用程式伺服器上啟用除錯功能,請驗證位址引數並未指定相同的值。 位址引數定義用來除錯的埠。 如果兩部啟用了除錯的伺服器配置成使用相同的除錯埠,則可能無法適當啟動伺服器。 比方說,兩部伺服器可能都仍配置了除錯引數 address=7777,也就是除錯位址引數的預設值。
資料類型 | 字串 |
單位 | Java 指令行引數 |
指定指令行引數,以傳遞給啟動應用程式伺服器程序的 Java 虛擬機器程式碼。
如果您想要啟用同步化服務的熱重新啟動同步特性,請指定 hotRestartSync。 這項特性用來向同步化服務指出,正在執行安裝的環境並未在部署管理程式作用時進行配置更新。 因此,當部署管理程式或節點代理程式伺服器重新啟動時,這個服務不需要執行完整的儲存庫比較。 當啟用這項特性時,在部署管理程式或節點代理程式重新啟動之後,第一次同步化作業的效率會比較好,對於含有混合版本 Cell、使用多個節點及執行多個應用程式的安裝架構而言,尤其如此。
如果在載入類別期間,您想要跳過驗證類別階段,請指定 -Xverify:none。 使用 -Xverify:none 會停用驗證 Java 類別,啟動時間可以改進 10-15%。 不過,當指定這個引數時,不會偵測到毀損或無效的類別資料。 如果載入毀損的類別資料,JVM 可能會產生非預期的行為或失敗。
如果您想要停用回收類別記憶體,請指定 -Xnoclassgc。 這個引數會增加類別重複使用的情況,可以稍微改進效能。 不過,這些類別所擁有的資源會保持使用中,即使尚未呼叫類別也是如此。 如果想要監視回收記憶體,您可以使用 verbose:gc 配置設定。 您可以利用產生的輸出來判斷收回這些資源對效能的影響。 如果同一組類別重複回收記憶體,您可能會希望停用回收類別記憶體。 依預設,會啟用類別的記憶體回收。
如果您想要一次使用多個記憶體回收執行緒,請指定 -Xgcthreads。 這個回收記憶體技術稱為並行記憶體回收。 這個引數只適用於 IBM Developer Kit。
在通用 JVM 引數欄位中輸入這個值時,也請輸入您的機器所執行的處理器數目。 比方說,如果有 3 個處理器在機器上執行,請輸入 -Xgcthreads 3。 在含有 n 個處理器的節點上,執行緒的預設數目是 n。
如果您想要停用壓縮資料堆,請指定 -Xnocompactgc。 壓縮資料堆是成本最高的記憶體回收作業。 如果您使用 IBM Developer Kit,您應該避免壓縮資料堆。 如果您停用了資料堆壓縮,您會消除所有相關的額外負荷。
請指定 -Xgpolicy 來設定回收記憶體原則。 這個引數只適用於 IBM Developer Kit。
如果您希望在資料堆已滿之前,用來追蹤應用程式執行緒的並行標記便從堆疊開始,請將這個引數設為 optavgpause。 當指定這個參數時,暫停回收記憶體器的時間會變的一致,不會長時間明顯地暫停。 不過,使用這個原則會降低產量,因為執行緒可能需要執行額外的工作。
如果您想要使產量最佳化,且在長時間暫停回收記憶體的情況下不會造成問題,請將這個引數設為 optthruput。 這是預設參數,建議的設定。
Java Platform Standard Edition 6 (Java SE 6) 具有世代記憶體回收功能,因此可以使用不同的記憶體儲存區來包含經歷時間不同的物件。 記憶體回收周期會依存在期間來收集物件,彼此互不相干。 您可以利用其他參數來個別設定記憶體儲存區的大小。 若要得到較好的效能,請設定短生命週期的物件所在儲存區的大小,使儲存區物件的保留時間短於一次記憶體回收週期。 請利用 NewSize 和 MaxNewSize 參數來指定新世代儲存區的大小。
-XX:NewSize=lower_bound -XX:MaxNewSize=upper_bound -XX:SurvivorRatio=new_ratio_size
如果您想要變更可用資料堆大小百分比下限,請指定 -Xminf。 如果可用空間低於指定的數量,資料堆便會增長。 在啟用重設模式中,這個引數用來指定中介軟體和暫時性資料堆的可用空間百分比下限。 這個引數指定的值是一個 0 至 1 的浮點數。 預設值是 .3 (30%)。
Java SE 6 中的 Java HotSpot 技術使用調適性 JVM,其中包含的演算法可隨著時間的推移,而將執行位元組碼最佳化。 JVM 是以 -server 和 -client 這兩種模式來執行的。在大部分情況下,請使用 -server 模式,這可以在一段時間內產生更有效的執行時期效能。
如果您使用預設的 -client 模式,啟動伺服器時間會比較快,建立的記憶體覆蓋區比較小。 不過,這個模式會降低延伸效能。 除非伺服器啟動時間比效能重要,否則,請利用 -server 模式來增進效能。 您可以監視程序大小和伺服器啟動時間,來檢查 -client 和 -server 模式之間的效能差異。
這個引數只適用於 z/OS。 請指定 -Dcom.ibm.CORBA.RequestTimeout= timeout_interval 引數來設定回應用戶端送出之要求的逾時期間。 這個引數使用 -D 選項。timeout_interval 是逾時期間(秒)。如果網路有非常嚴重的潛伏,請指定大的值來防止逾時。 如果您指定的值太小,參與工作量管理的應用程式伺服器可能會在收到回應之前逾時。
請只在您的應用程式發生逾時問題時,才指定這個引數。 這個引數沒有建議值。
這個引數只適用於 z/OS。 當重新整理用戶端工作量管理狀態的速度太快或太慢時,請指定 -Dcom.ibm.websphere.wlm.unusable.interval= timeout_interval 引數來變更 com.ibm.websphere.wlm.unusable.interval 內容的值。 這個內容指定工作量管理用戶端執行時期將伺服器標示為無法使用之後,在試圖重新聯繫伺服器之前,所等待的時間量(秒)。 這個引數會使用 -D 選項。. 預設值是 300 秒。 如果這個內容設成大的值,就會在一段長時間內,將伺服器標示為無法使用。這會防止工作量管理重新整理通訊協定在這個時段結束之前,重新整理用戶端的工作量管理狀態。
這個引數只適用於 z/OS。 請指定 -Dcom.ibm.ws.buffermgmt.impl.WsByteBufferPoolManagerImpl= 引數來指出,在不需要個別的直接位元組緩衝區之後,應該立即釋出這些緩衝區的儲存體。 這個引數唯一支援的值是 com.ibm.ws.buffermgmt.impl.ZOSWsByteBufferPoolManagerImpl。
-Dcom.ibm.ws.buffermgmt.impl.WsByteBufferPoolManagerImpl=com.ibm.ws.buffermgmt.impl.ZOSWsByteBufferPoolManagerImpl
在 z/OS 平台上,如果您指定 TCP 通道的 zaioFreeInitialBuffers 自訂內容,您也必須指定這個引數,以便在新連線不再需要起始讀取緩衝區時,讓通道立即釋出連線所用的這些緩衝區。
請指定 -Xshareclasses:none 引數來停用某程序的共用類別選項。 Java SE 6 所提供的共用類別選項,可讓您在快取記憶體中共用類別。 在快取記憶體中共用類別可改善啟動時間並減少記憶體覆蓋區。應用程式伺服器、節點代理程式和部署管理程式等程序可使用共用類別選項。
如果您使用這個選項,當程序不在使用中時,您應清除快取記憶體。若要清除快取記憶體,可呼叫 app_server_root/bin/clearClassCache.bat/sh 公用程式,或者停止再重新啟動程序。
資料類型 | 字串 |
單位 | Java 指令行引數 |
指定 JVM 程式碼使用的 JAR 執行檔的完整路徑名稱。
資料類型 | 字串 |
單位 | 路徑名稱 |
指定是否要停用 JVM 程式碼的即時 (JIT) 編譯器選項。
如果您停用 JIT 編譯器,通訊量明顯降低。 因此,為了效能,請保持啟用 JIT。
資料類型 | 布林 |
預設值 | false(啟用 JIT) |
建議 | 啟用 JIT |
指定給定的作業系統的 JVM 設定。
當開始程序時,程序會利用指定給伺服器的 JVM 設定,來作為作業系統的 JVM 設定。
當開始程序時,程序會利用指定給節點的 JVM 設定,來作為作業系統的 JVM 設定。
指定是否要對記憶體回收使用詳細除錯輸出。預設值是不啟用詳細記憶體回收。
如果啟用「詳細記憶體回收」,除錯輸出會傳到原生程序日誌之一。
,
資料類型 | 布林 |
預設值 | false |
當啟用這個欄位時,每次執行記憶體回收器,都會將報告寫入輸出串流中。 這份報告應該會指出 Java 記憶體回收程序的運作方式。
83.29/3724.32 * 100 = 2.236 %
如果您在回收記憶體上花了超出 5% 的時間,且經常回收記憶體,您可能需要增加 Java 資料堆大小。
若要判斷配置的資料堆是否擴增,請在每次記憶體回收循環之後,查看仍未配置的資料堆百分比,驗證這個百分比未持續下降。 如果可用空間的百分比持續下降,就表示在各次回收記憶體之間,資料堆在逐步擴增大小。 這個狀況可能表示應用程式洩漏記憶體。
另外在 z/OS 平台上,您也可以發出 MVS 主控台指令 modify display、jvmheap 來顯示 JVM 資料堆資訊。
另外,您也可以檢查伺服器活動及間隔 SMF 記錄。
JVM 資料堆大小也會提供給 PMI,且可以利用 Tivoli 效能檢視器來監視。