為訊息處理工具啟用 G1GC

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

本文說明如何在 Apigee Edge 的訊息處理器上啟用 垃圾優先垃圾收集器 (G1GC)。

Apigee Edge 的訊息處理器會在 Java 虛擬機器 (JVM) 上執行,並使用預設的垃圾收集器 (視硬體和作業系統設定而定,可能是序列或平行)。在特定情況下,您可能會想根據需求變更訊息處理器使用的垃圾收集器類型。

G1GC 是 Java HotSpot VM 的低暫停伺服器式分代垃圾回收器,可提升訊息處理器的整體效能。通常適用於中型到大型資料集的應用程式,這類應用程式對回應時間的要求比整體處理量更高。舉例來說,如果堆積大小較大 (超過 3 GB),可以考慮使用 G1GC。

一般來說,建議您一併設定另一個 JVM 參數 UseStringDeduplication 和 G1GC。這個參數會讓重複或相同的 String 值共用同一個字元陣列,藉此最佳化 Java 堆積記憶體用量。

事前準備

在訊息處理工具上啟用 G1GC

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

如要在 Message Processor 上啟用 G1GC,請按照下列步驟操作:

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

找出 useG1GC 資源的權杖

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

  1. 在訊息處理器來源目錄中搜尋 useG1GC 屬性 使用下列指令 /opt/apigee/edge-message-processor/source
    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} 標記之間的字串是您可在 Message Processor 的 .properties 檔案中設定的符記名稱。因此,屬性 useG1GC 的權杖如下:

    conf_system_useG1GC

在 Message Processor 上啟用 G1GC

下列步驟說明如何在 Apigee Message Processor 上啟用 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 仍顯示舊值,請確認您已正確按照「在 Message Processor 上啟用 G1GC」一文中的所有步驟操作。如果遺漏任何步驟,請再次正確執行所有步驟。
  4. 如果還是無法啟用 G1GC,請與 Apigee Edge 支援團隊聯絡。

後續步驟

在訊息處理器上啟用字串重複資料刪除功能