為訊息處理工具啟用 G1GC

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

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

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

G1GC 是 Java HotSpot VM 的伺服器式產生低運作式垃圾收集器,可提高訊息處理器的整體效能。一般而言,它的設計適用於具備中大型至大型資料集的應用程式,因為其回應時間比整體處理量更重要。舉例來說,如果堆積大小較大 (超過 3 GB),您可以考慮使用 G1GC。

我們通常建議搭配使用 G1GC 和另一個 JVM 參數。UseStringDeduplication這個參數會讓重複或相同的字串值共用相同的字元陣列,藉此最佳化 Java 堆積記憶體用量。

事前準備

在訊息處理器上啟用 G1GC

本節說明如何在邊緣訊息處理器中啟用 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. 這個指令的輸出內容顯示訊息處理器屬性 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 在訊息處理器上成功啟用 G1GC,則上一個指令會在 system.properties 檔案中顯示新的值。

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

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

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

  3. 如果還是看到屬性 useG1GC 的舊值,請確認您已正確遵循在訊息處理器上啟用 G1GC 一文中的所有步驟。如果您錯過任何步驟,請再次正確重複所有步驟。
  4. 如果還是無法啟用 G1GC,請與 Apigee Edge 支援團隊聯絡。

接下來呢?

在訊息處理器上啟用字串重複功能