您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
本文說明如何在 Apigee Edge 的訊息處理器上啟用 Garbage First Garbage Collector (G1GC)。
Apigee Edge 的訊息處理器會在 Java 虛擬機器 (JVM) 上執行,並使用預設的垃圾收集器 (序列或平行,視硬體和作業系統設定而定)。在某些情況下,您可能需要根據需求變更訊息處理器使用的垃圾收集器類型。
G1GC 是 Java HotSpot VM 的低暫停伺服器樣式分代垃圾回收器,可提升訊息處理器的整體效能。一般來說,這項服務適用於具有中大型資料集的應用程式,且回應時間比整體處理量更重要。舉例來說,如果堆積大小很大 (超過 3 GB),可以考慮使用 G1GC。
一般來說,建議您一併設定另一個 JVM 參數 UseStringDeduplication 和 G1GC。這個參數會讓重複或相同的字串值共用同一個字元陣列,藉此最佳化 Java 堆積記憶體用量。
事前準備
- 如果您不熟悉 Java 中的垃圾收集和不同類型的垃圾收集器,請參閱「Java 垃圾收集基礎知識」。
- 如果您不熟悉 G1GC,請參閱「開始使用 G1 垃圾收集器」。
- 如果您不熟悉如何設定 Edge for Private Cloud 的屬性,請參閱「如何設定 Edge」。
在訊息處理器上啟用 G1GC
本節說明如何在 Edge 訊息處理器上啟用 G1GC。您可以透過訊息處理器元件上的 useG1GC 屬性啟用 G1GC。根據預設,訊息處理器的這項屬性會設為 false。如要設定訊息處理器的任何屬性,請按照「如何設定 Edge」一文所述的語法使用權杖。
如要在訊息處理器上啟用 G1GC,請按照下列步驟操作:
找出 useG1GC 屬性的權杖
下列步驟說明如何找出 useG1GC 屬性的權杖:
- 使用下列指令,在訊息處理器來源目錄
/opt/apigee/edge-message-processor/source中搜尋useG1GC屬性:grep -ri "useG1GC" /opt/apigee/edge-message-processor/source
-
這個指令的輸出內容會顯示 Message Processor 資源的權杖
useG1GC,如下所示:/opt/apigee/edge-message-processor/source/conf/system.properties:useG1GC={T}conf_system_useG1GC{/T}{T}{/T}標記之間的字串是權杖名稱,您可以在訊息處理器的.properties檔案中設定。因此,屬性useG1GC的權杖如下:conf_system_useG1GC
在訊息處理器上啟用 G1GC
下列步驟說明如何在 Apigee 訊息處理器上啟用 G1GC:
-
在編輯器中開啟 訊息處理器 機器上的
/opt/apigee/customer/application/message-processor.properties檔案。如果檔案不存在,請建立該檔案。例如:vi /opt/apigee/customer/application/message-processor.properties
-
在這個檔案中新增下列程式碼:
conf_system_useG1GC=true
- 儲存變更。
-
請確認這個屬性檔案的擁有者是
apigee使用者。例如:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
使用下列指令重新啟動訊息處理器:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 如果有多個訊息處理器,請在所有訊息處理器上重複這些步驟。
驗證訊息處理器的 G1GC 設定
本節說明如何確認訊息處理器上的 G1GC 設定已成功修改。
雖然您使用權杖 conf_system_useG1GC 在訊息處理器上啟用 G1GC,但仍須確認實際屬性 useG1GC 已設為新值,如下所示:
-
在
/opt/apigee/edge-message-processor/conf目錄中搜尋useG1GC屬性,確認該屬性已設為新值。例如:grep -ri "useG1GC" /opt/apigee/edge-message-processor/conf
-
如果訊息處理器成功啟用 G1GC,上述指令會在
system.properties檔案中顯示新值。在訊息處理器上啟用 G1GC 後,前一個指令的範例結果如下:
/opt/apigee/edge-message-processor/conf/system.properties:useG1GC=true
在範例輸出內容中,請注意,屬性
useG1GC已在system.properties中設為新值true。這表示訊息處理器已成功啟用 G1GC。 -
如果屬性
useG1GC仍顯示舊值,請確認您已正確按照「在訊息處理器上啟用 G1GC」一節所述的所有步驟操作。如果遺漏任何步驟,請再次正確重複所有步驟。 - 如果還是無法啟用 G1GC,請聯絡 Apigee Edge 支援團隊。