O PolarDB oferece diversas políticas para controlar o grau de paralelismo (DOP) globalmente ou por consulta, além de permitir a transição segura para execução sequencial quando a carga de recursos estiver elevada.
Todos os parâmetros de cluster no console do PolarDB incluem o prefixo de compatibilidade com arquivo de configuração do MySQL loose_. Ao modificar parâmetros no console, utilize os nomes que contêm o prefixo loose_.
Como funciona
Ao receber uma consulta paralela, o PolarDB aplica três camadas de controle:
Política de fila — Se o número total de workers paralelos em execução atingir
loose_max_parallel_workers, as novas consultas paralelas entram em uma fila FIFO (first-in, first-out) em vez de serem executadas imediatamente.Limite de capacidade da fila — Caso o DOP total das consultas enfileiradas atinja
loose_queuing_parallel_degree_limit, a fila é considerada cheia e as consultas subsequentes retornam à execução sequencial.Tempo limite da fila — Quando uma consulta permanece na fila por mais tempo que
loose_pq_max_queuing_time, ela é removida e passa a ser executada sequencialmente.
A tentativa de execução paralela pelo PolarDB depende da política de DOP definida por loose_parallel_degree_policy.
Parâmetros de DOP
Todos os parâmetros listados abaixo exigem o prefixo loose_ quando configurados no console do PolarDB.
Limites de fila e workers
|
Parâmetro |
Escopo |
Padrão |
Descrição |
|
|
Global |
2 × núcleos de CPU |
Número máximo de workers paralelos em todas as consultas paralelas simultâneas em um único nó. Ao atingir esse limite, novas consultas paralelas entram em uma fila FIFO. Em um cluster serverless, esse valor é ajustado automaticamente conforme o dimensionamento das especificações do nó. Valores válidos: 1–10.000. |
|
|
Global |
64 |
DOP total máximo para consultas aguardando na fila. Quando esse limite é atingido, a fila fica cheia e consultas paralelas adicionais retornam à execução sequencial. Valores válidos: 0–10.000. |
|
|
Global, sessão |
200 ms |
Tempo máximo que uma consulta pode aguardar na fila antes de retornar à execução sequencial. Valores válidos: 0–18.446.744.073.709.551.615 ms. |
Política de DOP
|
Parâmetro |
Escopo |
Padrão |
Descrição |
|
|
Global |
|
Controla como o PolarDB seleciona o DOP para cada consulta. Valores válidos: |
Comparação de políticas:
|
Valor |
Quem executa consultas paralelas |
Como o DOP é selecionado |
|
|
Nó primário e nós somente leitura |
Fixo: utiliza o valor de |
|
|
Nó primário e nós somente leitura |
Adaptativo: o PolarDB ativa ou desativa a execução paralela com base no uso de CPU, memória e operações de entrada/saída por segundo (IOPS), selecionando o DOP conforme o custo da consulta |
|
|
Apenas nós somente leitura |
Adaptativo: igual a |
Utilize REPLICA_AUTO para proteger o nó primário da sobrecarga de consultas paralelas, permitindo que os nós somente leitura escalem o desempenho das consultas de forma adaptativa.
Limiares baseados em recursos
Estes parâmetros se aplicam quando loose_parallel_degree_policy está definido como AUTO ou REPLICA_AUTO. O PolarDB desativa consultas paralelas em um nó sempre que qualquer limiar for excedido.
|
Parâmetro |
Escopo |
Padrão |
Comportamento do limiar |
|
|
Global |
70 |
Desativa consultas paralelas quando o uso da CPU excede esta porcentagem. Valores válidos: 0–100. |
|
|
Global |
90 |
Desativa consultas paralelas quando o uso de memória excede esta porcentagem. Valores válidos: 0–100. |
|
|
Global |
80 |
Desativa consultas paralelas quando o uso de IOPS excede esta porcentagem. Valores válidos: 0–100. |
Monitorar execução de consultas paralelas
Utilize as seguintes variáveis de status para acompanhar a frequência com que consultas paralelas retornam à execução sequencial.
|
Variável |
Escopo |
Descrição |
|
|
Global, sessão |
Quantidade de consultas que retornaram à execução sequencial porque |
|
|
Global, sessão |
Quantidade de consultas que retornaram à execução sequencial devido ao tempo limite da fila. Um aumento nessa contagem indica que as consultas estão aguardando demais — considere aumentar |
|
|
Global |
Número atual de workers paralelos ativos. Use este valor para avaliar a proximidade do limite de |