您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
本文說明如何在 Apigee Edge 的訊息處理器中啟用 垃圾第一垃圾收集器 (G1GC)。
Apigee Edge 的訊息處理器會在 Java 虛擬機器 (JVM) 上執行,並根據硬體和作業系統設定使用預設的垃圾收集器 (序列或平行處理)。在某些情況下,您可能會基於自身需求,變更訊息處理器中使用的垃圾收集器類型。
G1GC 是 Java HotSpot VM 的伺服器式產生低運作式垃圾收集器,可提高訊息處理器的整體效能。一般而言,它的設計適用於具備中大型至大型資料集的應用程式,因為其回應時間比整體處理量更重要。舉例來說,如果堆積大小較大 (超過 3 GB),您可以考慮使用 G1GC。
我們通常建議搭配使用 G1GC 和另一個 JVM 參數。UseStringDeduplication
這個參數會讓重複或相同的字串值共用相同的字元陣列,藉此最佳化 Java 堆積記憶體用量。
事前準備
- 如果您不熟悉 Java 中的垃圾收集和不同類型的垃圾收集器,請參閱 Java 垃圾收集基本資訊。
- 如果您不熟悉 G1GC,請參閱開始使用 G1 垃圾收集器。
- 如果不熟悉設定 Edge 在 Private Cloud 中的屬性,請參閱如何設定 Edge。
在訊息處理器上啟用 G1GC
本節說明如何在邊緣訊息處理器中啟用 G1GC。您可以透過訊息處理器元件上的 useG1GC
屬性啟用 G1GC。根據預設,訊息處理器中的這個屬性會設為 false
。如要在訊息處理器上設定任何屬性,請根據「如何設定 Edge」一節所述的語法使用權杖。
如要為訊息處理器啟用 G1GC,請執行下列步驟:
找出 useG1GC 屬性的權杖
下列步驟說明如何找出 useG1GC 屬性的權杖:
- 使用下列指令,在訊息處理器來源目錄
/opt/apigee/edge-message-processor/source
中搜尋useG1GC
屬性:grep -ri "useG1GC" /opt/apigee/edge-message-processor/source
-
這個指令的輸出內容顯示訊息處理器屬性
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 在訊息處理器上成功啟用 G1GC,則上一個指令會在
system.properties
檔案中顯示新的值。在訊息處理器上啟用 G1GC 後,上一個指令的範例結果如下:
/opt/apigee/edge-message-processor/conf/system.properties:useG1GC=true
在範例輸出中,請注意,
system.properties
中的新值true
已設為useG1GC
。這表示 G1GC 已成功在訊息處理器中啟用。 -
如果還是看到屬性
useG1GC
的舊值,請確認您已正確遵循在訊息處理器上啟用 G1GC 一文中的所有步驟。如果您錯過任何步驟,請再次正確重複所有步驟。 - 如果還是無法啟用 G1GC,請與 Apigee Edge 支援團隊聯絡。