您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
本文說明如何在 Apigee Edge 的訊息處理器上啟用 垃圾優先垃圾收集器 (G1GC)。
Apigee Edge 的訊息處理器會在 Java 虛擬機器 (JVM) 上執行,並使用預設的垃圾收集器 (視硬體和作業系統設定而定,可能是序列或平行)。在特定情況下,您可能會想根據需求變更訊息處理器使用的垃圾收集器類型。
G1GC 是 Java HotSpot VM 的低暫停伺服器式分代垃圾回收器,可提升訊息處理器的整體效能。通常適用於中型到大型資料集的應用程式,這類應用程式對回應時間的要求比整體處理量更高。舉例來說,如果堆積大小較大 (超過 3 GB),可以考慮使用 G1GC。
一般來說,建議您一併設定另一個 JVM 參數 UseStringDeduplication 和 G1GC。這個參數會讓重複或相同的 String 值共用同一個字元陣列,藉此最佳化 Java 堆積記憶體用量。
事前準備
- 如果您不熟悉 Java 中的垃圾收集和不同類型的垃圾收集器,請參閱「Java 垃圾收集基礎知識」。
- 如果您不熟悉 G1GC,請參閱「開始使用 G1 垃圾收集器」。
- 如果您不熟悉如何為 Private Cloud 上的 Edge 設定屬性,請參閱「如何設定 Edge」。
在訊息處理工具上啟用 G1GC
本節說明如何在 Edge 訊息處理器上啟用 G1GC。您可以在訊息處理器元件上透過 useG1GC 屬性啟用 G1GC。根據預設,訊息處理器的這項屬性會設為 false。如要在 Message Processor 上設定任何屬性,請按照「如何設定 Edge」一文所述的語法使用權杖。
如要在 Message Processor 上啟用 G1GC,請按照下列步驟操作:
找出 useG1GC 資源的權杖
下列步驟說明如何找出要用於 useG1GC 屬性的權杖:
- 在訊息處理器來源目錄中搜尋
useG1GC屬性 使用下列指令/opt/apigee/edge-message-processor/source: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}標記之間的字串是您可在 Message Processor 的.properties檔案中設定的符記名稱。因此,屬性useG1GC的權杖如下:conf_system_useG1GC
在 Message Processor 上啟用 G1GC
下列步驟說明如何在 Apigee Message Processor 上啟用 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仍顯示舊值,請確認您已正確按照「在 Message Processor 上啟用 G1GC」一文中的所有步驟操作。如果遺漏任何步驟,請再次正確執行所有步驟。 - 如果還是無法啟用 G1GC,請與 Apigee Edge 支援團隊聯絡。