PolarDB支援通過多種策略控制單個查詢或全域的總並行度,以保證在資源負載允許的情況下選擇合理的並行度。
叢集參數在PolarDB控制台上都已加上MySQL設定檔的相容性首碼loose_。如果您需要在PolarDB控制台修改參數,請選擇帶loose_首碼的參數進行修改。
並行查詢排隊策略
參數 | 說明 |
loose_max_parallel_workers | 單個節點內允許同時啟動並執行最大並行worker線程數。超過loose_max_parallel_workers後新的並行查詢將進入排隊等待,任務隊列調度策略為先入先出(FIFO)。 |
loose_queuing_parallel_degree_limit | 隊列中允許的最大並行度。隊列中並行Worker的總數量超過loose_queuing_parallel_degree_limit後,則認為隊列滿,後續查詢將被回退為串列執行。 |
loose_pq_max_queuing_time | 查詢在隊列中的最大等待時間,如果查詢在隊列中等待時間超過該值,會被立即移除隊列並回退為串列執行。 |
並行度控制策略
參數 | 層級 | 說明 |
loose_max_parallel_workers | Global | 最大允許同時啟動並執行並行worker線程數,超過該值後並行查詢需要進入任務隊列中等待。
說明 loose_max_parallel_workers參數在Serverless叢集中會根據節點規格的彈性擴充/收縮而進行調整。 |
loose_queuing_parallel_degree_limit | Global | 最大允許同時進入並行排隊的並行度總和,超過該值後查詢將被禁止並行查詢,回退為串列執行。
|
loose_pq_max_queuing_time | Global、Session | 並行查詢在隊列中最大等待時間,等待時間超出該值後直接回退為串列執行。
|
相關統計資訊:
變數名 | 層級 | 描述 |
PQ_refused_over_total_workers | Global、Session | 由於總Worker數限制沒有啟用並行的查詢數。 |
PQ_refused_over_max_queuing_time | Global、Session | 由於並行查詢排隊逾時沒有啟動並行的查詢數。 |
Total_running_parallel_workers | Global | 當前正在啟動並執行Parallel Worker的數目。 |
系統資源控制策略
PolarDB將根據資料庫的CPU、記憶體或IOPS資源的使用率來判斷是否禁止並行查詢計劃。同時,在需要進行並存執行的情況下,支援自訂並行查詢的並行度選擇策略。
參數 | 層級 | 說明 |
loose_auto_dop_cpu_pct_hwm | Global | CPU使用率閾值。若CPU使用率超過閾值,PolarDB會禁止並行查詢計劃。
|
loose_auto_dop_mem_pct_hwm | 記憶體使用量率閾值。若記憶體使用量率超過閾值,PolarDB會禁止並行查詢計劃。
| |
loose_auto_dop_iops_pct_hwm | IOPS使用率閾值。若IOPS使用率超過閾值,PolarDB會禁止並行查詢計劃。
|