并行资源控制策略配置

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线程数,超过该值后并行查询需要进入任务队列中等待。

  • 取值范围:[1-10000]

  • 默认值为CPU核数的2

说明

loose_max_parallel_workers参数在Serverless集群中会根据节点规格的弹性扩展/收缩而进行调整。

loose_queuing_parallel_degree_limit

Global

最大允许同时进入并行排队的并行度总和,超过该值后查询将被禁止并行查询,回退为串行执行。

  • 取值范围:[0-10000]

  • 默认值:64

loose_pq_max_queuing_time

Global、Session

并行查询在队列中最大等待时间,等待时间超出该值后直接回退为串行执行。

  • 取值范围:[0-18446744073709551615]

  • 默认值:200

  • 单位:毫秒

相关统计信息:

变量名

级别

描述

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会禁止并行查询计划。

  • 取值范围:0~100

  • 默认值:70

loose_auto_dop_mem_pct_hwm

内存使用率阈值。若内存使用率超过阈值,PolarDB会禁止并行查询计划。

  • 取值范围:0~100

  • 默认值:90

loose_auto_dop_iops_pct_hwm

IOPS使用率阈值。若IOPS使用率超过阈值,PolarDB会禁止并行查询计划。

  • 取值范围:0-100

  • 默认值:80