Edge for Private Cloud 4.54.00 版隨附 Qpid Broker-J 10.0.1。本頁說明 Edge for Private Cloud (搭配 Java 型 Broker) apigee-qpidd 元件的記憶體和磁碟注意事項。以下各節專門說明 Apigee 的 Qpid 用途,以及如何使用 Apigee 的設定機制調整 Qpid。
Apigee 中的 Qpid
在 Apigee 中,Qpid 用於兩個主要工作流程:
- Analytics
- 營利
在這兩種工作流程中,訊息處理器都會產生訊息,並將訊息收集到批次中,然後推送至 Qpid。如果是 Analytics,訊息會由 Qpid-server 讀取;如果是營利,訊息會由 Rating Server (management-server 的一部分) 讀取。讀取後,系統會取消批次處理訊息,並擷取訊息內容。
建議設定
以下各節說明 Qpid 的記憶體和磁碟建議設定。這些設定是以 Analytics 或 Monetization 的單一訊息大小 2 KB 為基礎。預設批次大小為 50,因此 Qpid 中的每則訊息約為 100 KB。Apigee 允許 Proxy 修改訊息並新增額外資訊 (Analytics 或營利)。在極端情況下,這可能會大幅改變單一訊息的大小,以及 Qpid 中整體批次處理訊息的大小。即使在這種情況下,下方各節中有關記憶體和磁碟的一般建議仍然適用,但您可能需要對 Qpid 進行額外調整,以確保作業順暢。
記憶體
Qpid Broker 使用兩種記憶體:非堆積記憶體和堆積記憶體。Qpid 會將訊息儲存在堆積外記憶體中,並使用堆積記憶體執行內部工作、將訊息直接傳送至佇列和交換等。在大多數情況下,Apigee 建議您將 Qpid Broker 的堆積外記憶體和堆積記憶體比例維持在 3:1。
堆外記憶體中的訊息會保留在磁碟上。此外,如果堆積外記憶體的總使用率超過特定門檻,Qpid 會將訊息溢位至磁碟。
根據預設,Apigee 會根據節點上的可用記憶體,計算 Qpid Broker 的堆積和堆積外記憶體。Apigee 腳本的 Qpid Broker 堆積和堆外記憶體合併軟性限制為 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 Reference for Memory」。
磁碟
Qpid Broker 的資料目錄為 $APIGEE_ROOT/data/apigee-qpidd。Qpid Broker 的記錄檔會儲存在 $APIGEE_ROOT/var/log/apigee-qpidd。
託管資料目錄的檔案系統效能,是 Broker 整體效能的關鍵。為獲得最佳效能,請選擇延遲時間短且未由其他應用程式使用的裝置。
Qpid Broker 會將訊息保存在資料目錄中。根據預設,代理程式會接受訊息,直到託管資料目錄的檔案系統達到 80% 的容量為止。如要修改這項門檻,請在每個 Qpid 節點上覆寫下方範例所示的設定。
bin_run-qpidd_qpid.store.filesystem.maxUsagePercent=60
在這個範例中,當基礎檔案系統達到 60% 滿時,代理程式會拒絕新訊息。
如何變更 Qpid 設定
如要變更 Qpid 設定,請按照下列步驟操作:
- 建立或編輯下列檔案:
$APIGEE_ROOT/customer/application/qpidd.properties
- 視需要新增、移除或修改設定。
舉例來說,如要將 Qpid Broker 的堆積記憶體上限變更為 6 GB,請在檔案中新增下列設定覆寫:
bin_run-qpidd_qpid.run.jvm.max_vm_heap=6144M
- 儲存變更,並確保
apigee使用者擁有檔案且可讀取檔案:chown apigee:apigee $APIGEE_ROOT/customer/application/qpidd.properties
- 重新啟動
qpidd程序:apigee-service apigee-qpidd restart