為訊息處理工具啟用 G1GC

您目前查看的是 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 堆積記憶體用量。

事前準備

在訊息處理器上啟用 G1GC

本節說明如何在 Edge 訊息處理器上啟用 G1GC。您可以透過訊息處理器元件上的 useG1GC 屬性啟用 G1GC。根據預設,訊息處理器的這項屬性會設為 false。如要設定訊息處理器的任何屬性,請按照「如何設定 Edge」一文所述的語法使用權杖。

如要在訊息處理器上啟用 G1GC,請按照下列步驟操作:

  1. 找出 useG1GC 屬性的權杖
  2. 在訊息處理器上啟用 G1GC

找出 useG1GC 屬性的權杖

下列步驟說明如何找出 useG1GC 屬性的權杖:

  1. 使用下列指令,在訊息處理器來源目錄 /opt/apigee/edge-message-processor/source 中搜尋 useG1GC 屬性:
    grep -ri "useG1GC" /opt/apigee/edge-message-processor/source
  2. 這個指令的輸出內容會顯示 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:

  1. 在編輯器中開啟 訊息處理器 機器上的 /opt/apigee/customer/application/message-processor.properties 檔案。如果檔案不存在,請建立該檔案。例如:
    vi /opt/apigee/customer/application/message-processor.properties
  2. 在這個檔案中新增下列程式碼:
    conf_system_useG1GC=true
  3. 儲存變更。
  4. 請確認這個屬性檔案的擁有者是 apigee 使用者。例如:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. 使用下列指令重新啟動訊息處理器:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. 如果有多個訊息處理器,請在所有訊息處理器上重複這些步驟。

驗證訊息處理器的 G1GC 設定

本節說明如何確認訊息處理器上的 G1GC 設定已成功修改。

雖然您使用權杖 conf_system_useG1GC 在訊息處理器上啟用 G1GC,但仍須確認實際屬性 useG1GC 已設為新值,如下所示:

  1. 在 /opt/apigee/edge-message-processor/conf 目錄中搜尋 useG1GC 屬性,確認該屬性已設為新值。例如:
    grep -ri "useG1GC" /opt/apigee/edge-message-processor/conf
  2. 如果訊息處理器成功啟用 G1GC,上述指令會在 system.properties 檔案中顯示新值。

    在訊息處理器上啟用 G1GC 後,前一個指令的範例結果如下:

    /opt/apigee/edge-message-processor/conf/system.properties:useG1GC=true

    在範例輸出內容中,請注意,屬性 useG1GC 已在 system.properties 中設為新值 true。這表示訊息處理器已成功啟用 G1GC。

  3. 如果屬性 useG1GC 仍顯示舊值,請確認您已正確按照「在訊息處理器上啟用 G1GC」一節所述的所有步驟操作。如果遺漏任何步驟,請再次正確重複所有步驟。
  4. 如果還是無法啟用 G1GC,請聯絡 Apigee Edge 支援團隊。

後續步驟

在訊息處理器上啟用字串簡化