QPID 作業指南

Edge for Private Cloud 4.52.01 版隨附 Qpid Broker-J 8.0.6 版。本頁面說明 Private Cloud Edge 專用 apigee-qpidd 元件 (使用 Java 型代理程式) 的記憶體和磁碟注意事項。以下各節適用於 Apigee 的 Qpid 用途,並說明如何使用 Apigee 的設定機制調整 Qpid。

Apigee 中的 Qpid

在 Apigee 中,Qpid 用於兩個主要工作流程:

  • 數據分析
  • 營利

在這兩種工作流程中,訊息處理者會產生訊息,這些訊息會分批收集到 Qpid。Analytics (分析) 會由 Qpid-server 讀取訊息;營利時,訊息會由評分伺服器讀取 (屬於管理伺服器)。讀取完成後,批次處理的訊息就會未經批次處理及擷取。

以下各節說明使用 Qpid 的記憶體與磁碟的建議設定。這些設定是以 2 KB 為 Analytics (分析) 或營利的訊息大小為計算依據。在預設批量為 50 的情況下,Qpid 中的每則訊息約為 100 KB。Apigee 可讓 Proxy 在訊息中修改及新增額外資訊 (數據分析或營利)。在極少數的情況下,這可能會大幅變更單一訊息與 Qpid 中單一訊息的整體批次訊息大小。雖然以下章節中有關記憶體和磁碟的一般建議就算在這種情況下仍然有效,但您可能需要對 Qpid 執行額外的調整,以確保作業順利進行。

記憶體容量

Qpid Broker 使用兩種記憶體類型:離堆記憶體和堆積記憶體。Qpid 會在堆積記憶體中儲存訊息,並將訊息用於內部工作,將訊息傳送至佇列和交換等。在大多數情況下,Apigee 建議您為 Qpid Broker 關閉堆積和堆積記憶體的 3:1 比率。

記憶體不足記憶體中的訊息會保留在磁碟上。另外,如果離堆記憶體的總使用率超過特定閾值,Qpid 會設定為將訊息溢位至磁碟。

根據預設,Apigee 會根據節點的可用記憶體計算 Qpid Broker 的堆積和堆積記憶體。Apigee 的指令碼有 4 GB 的彈性限制,適用於 Qpid Broker 的堆積和記憶體外堆積記憶體。如要覆寫這些限制,您可以使用下列兩種設定,自行為 Qpid 的堆積和記憶體外堆積記憶體設定值。

  • 堆積記憶體設定:bin_run-qpidd_qpid.run.jvm.max_vm_heap=1024m
  • 關閉堆積記憶體的設定:bin_run-qpidd_qpid.run.jvm.max_direct_memory_size=3072m

如要瞭解如何覆寫設定,請參閱如何變更 Qpid 設定

詳情請參閱 記憶體的 Apache Qpid 參考資料

磁碟

Qpid Broker 的資料目錄是 $APIGEE_ROOT/data/apigee-qpidd。Qpid Broker 的記錄會儲存在 $APIGEE_ROOT/var/log/apigee-qpidd 中。

代管資料目錄的檔案系統效能是代理程式整體效能的關鍵。為獲得最佳效能,請選擇延遲時間短且未用於其他應用程式的裝置。

Qpid Broker 將訊息保留在資料目錄中。根據預設,在代管資料目錄的檔案系統已滿 80% 前,代理程式會接受訊息。您可以在每個 Qpid 節點上覆寫下方範例所示的設定,修改這個門檻。

bin_run-qpidd_qpid.store.filesystem.maxUsagePercent=60

在這個範例中,代理程式在基礎檔案系統已滿 60% 時拒絕新訊息。

如何變更 Qpid 設定

如何變更 Qpid 設定:

  1. 建立或編輯以下檔案:
    $APIGEE_ROOT/customer/application/qpidd.properties
  2. 視需要新增或移除或修改設定。例如,如要將 Qpid Broker 的堆積記憶體上限變更為 6 GB,請在檔案中新增下列設定覆寫:
    bin_run-qpidd_qpid.run.jvm.max_vm_heap=6144M
  3. 儲存變更,並確認檔案為 apigee 使用者所擁有,且可供讀取:
    chown apigee:apigee $APIGEE_ROOT/customer/application/qpidd.properties
  4. 重新啟動 qpidd 程序:
    apigee-service apigee-qpidd 重新啟動