本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

限制發布訂閱用戶端的輸出緩衝區大小

更新時間:2024-10-24 19:45

通過自訂client-output-buffer-limit pubsub的值,您可以調整Tair(Redis OSS-compatible)執行個體為發布訂閱用戶端分配的緩衝區大小。當某個用戶端的緩衝區資料超過限制時,執行個體將斷開與該用戶端的串連,防止這些資料佔用過多的記憶體而影響執行個體服務的效能。

輸出緩衝區限制

Tair(Redis OSS-compatible)執行個體為每個用戶端分配了輸出緩衝區(output buffer)。當執行個體處理完用戶端的請求後,會將返回結果臨時儲存在輸出緩衝區中,然後將這些資料發送給用戶端。如果不對輸出緩衝區的大小做出限制,輸出緩衝區可能會積累大量資料,甚至達到最大記憶體限制,導致服務崩潰。以下是兩種典型情境:

  • 用戶端命令的傳回值過大。

  • 發行者(publisher)發布訊息的速度大於訂閱者(subscriber)消費訊息的速度。

合理地設定client-output-buffer-limit pubsub參數可以避免發布訂閱用戶端的輸出緩衝區佔用記憶體過大。

操作步驟

  1. 訪問執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。

  2. 在左側導覽列中,單擊參數設定

  3. 在參數列表中,單擊client-output-buffer-limit pubsub右側操作列的修改

  4. 在彈出的對話方塊中,依次設定hard limitsoft limitsoft seconds的值,並用空格隔開。

    參數說明:

    • hard limit為強限制值,單位為Byte,當一個發布訂閱用戶端的輸出緩衝區佔用記憶體達到或超過hard limit的限制時,Tair將斷開該用戶端的串連。

    • soft limitsoft seconds為一組弱限制值,當一個發布訂閱用戶端的輸出緩衝區佔用記憶體達到或超過soft limit(單位為Byte)的限制,且該狀態的期間達到soft seconds(單位為s)時間長度時,Tair將斷開該用戶端的串連。

    說明

    hard limitsoft limitsoft seconds的預設值分別為33554432、8388608和60,即32 MB、8 MB和60 s。

  5. 單擊確定

    設定完畢後您可以在控制台查看到設定後的值,您也可以使用redis-cli串連執行個體,然後執行CONFIG GET client-output-buffer-limit命令來查看設定後的值。

相關API

API介面

說明

API介面

說明

DescribeParameters

查詢執行個體的配置參數和運行參數。

ModifyInstanceConfig

修改執行個體的參數配置。

  • 本頁導讀 (1, M)
  • 輸出緩衝區限制
  • 操作步驟
  • 相關API
文檔反饋