QPID 作業指南

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

Apigee 中的 Qpid

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

  • 數據分析
  • 營利

在這兩種工作流程中,訊息處理者都會產生訊息,系統會批次收集並推送至 Qpid。對 Analytics (分析) 來說,訊息會由 Qpid-server 讀取,如果是營利,則是由 Rating Server (管理伺服器的一部分) 讀取。讀取後,批次訊息就不會進行批次擷取和擷取。

下列各節說明使用 Qpid 的記憶體和磁碟建議設定。這些設定以數據分析或營利的單一訊息大小為 2 KB 為依據。預設批量為 50 時,Qpid 中的每則訊息約為 100 KB。Apigee 允許 Proxy 修改及在訊息 (數據分析或營利) 中修改額外資訊。在極少數的情況下,這可能會大幅改變單一訊息的大小,以及 Qpid 中的整體批次訊息。即使如此,以下各節有關記憶體和磁碟的一般建議仍然適用,但您可能需要對 Qpid 進行其他調整,才能確保作業順利進行。

記憶體

Qpid 代理程式使用兩種記憶體:堆積記憶體和堆積記憶體。Qpid 會將訊息儲存在堆積記憶體內,並將訊息用於專屬的內部工作、將訊息導向佇列和交換作業等。在大多數情況下,Apigee 建議保持 Qpid Broker 的離堆積和堆積記憶體維持 3:1 的比率。

而未堆積記憶體中的訊息會保留在磁碟中。此外,如果堆積記憶體的總使用率違反特定門檻,Qpid 就會設為將訊息溢位至磁碟。

根據預設,Apigee 會根據節點的可用記憶體計算 Qpid 代理程式的堆積和堆積記憶體。Apigee 指令碼的堆積記憶體堆積和堆積記憶體合併有 4 GB 的軟性限制。如要覆寫這些限制,您可以使用下列兩項設定,自行設定 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 代理程式的資料目錄為 $APIGEE_ROOT/data/apigee-qpidd。Qpid 代理程式的記錄儲存在 $APIGEE_ROOT/var/log/apigee-qpidd 中。

託管資料目錄的檔案系統效能是改善整體效能的關鍵。如要獲得最佳效能,請選擇延遲時間短且其他應用程式並未使用的裝置。

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

bin_run-qpidd_qpid.store.filesystem.maxUsagePercent=60

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

如何變更 Qpid 設定

如何變更 Qpid 設定:

  1. 建立或編輯下列檔案:
    $APIGEE_ROOT/customer/application/qpidd.properties
  2. 視需要新增或移除設定。舉例來說,如要將 Qpid 代理程式的堆積記憶體上限變更為 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 重新啟動