PolarDB admite varias políticas para controlar el grado de paralelismo (DOP) de forma global o por consulta. También permite volver a la ejecución secuencial de manera ordenada cuando la carga de recursos es alta.
Todos los parámetros del clúster en la consola de PolarDB incluyen el prefijo de compatibilidad con el archivo de configuración de MySQL loose_. Cuando modifique parámetros en la consola, use los nombres que incluyen el prefijo loose_.
Cómo funciona
Cuando llega una consulta en paralelo, PolarDB aplica tres capas de control:
Política de cola: si el número total de workers en paralelo en ejecución alcanza
loose_max_parallel_workers, las nuevas consultas en paralelo entran a una cola de tipo primero en entrar, primero en salir (FIFO) en lugar de ejecutarse de inmediato.Límite de capacidad de la cola: si el DOP total de las consultas en espera alcanza
loose_queuing_parallel_degree_limit, la cola se considera llena y las consultas posteriores vuelven a la ejecución secuencial.Tiempo de espera en la cola: si una consulta permanece en espera más tiempo que
loose_pq_max_queuing_time, se elimina de la cola y vuelve a la ejecución secuencial.
La decisión de intentar o no la ejecución en paralelo depende de la política de DOP que establece loose_parallel_degree_policy.
Parámetros de DOP
Todos los parámetros que se muestran a continuación requieren el prefijo loose_ cuando se configuran en la consola de PolarDB.
Límites de cola y de workers
|
Parámetro |
Alcance |
Valor predeterminado |
Descripción |
|
|
Global |
2 × núcleos de CPU |
Número máximo de workers en paralelo en todas las consultas concurrentes de un solo nodo. Al alcanzar este límite, las nuevas consultas en paralelo entran a una cola FIFO. En un clúster serverless, este valor se ajusta automáticamente conforme cambian las especificaciones del nodo. Valores válidos: de 1 a 10,000. |
|
|
Global |
64 |
DOP total máximo para las consultas en espera dentro de la cola. Al alcanzar este límite, la cola se llena y las consultas adicionales vuelven a la ejecución secuencial. Valores válidos: de 0 a 10,000. |
|
|
Global, sesión |
200 ms |
Tiempo máximo que una consulta puede esperar en la cola antes de volver a la ejecución secuencial. Valores válidos: de 0 a 18,446,744,073,709,551,615 ms. |
Política de DOP
|
Parámetro |
Alcance |
Valor predeterminado |
Descripción |
|
|
Global |
|
Controla cómo PolarDB selecciona el DOP para cada consulta. Valores válidos: |
Comparación de políticas:
|
Valor |
Quién ejecuta las consultas en paralelo |
Cómo se selecciona el DOP |
|
|
Nodo principal y nodos de solo lectura |
Fijo: usa el valor de |
|
|
Nodo principal y nodos de solo lectura |
Adaptativo: PolarDB habilita o deshabilita la ejecución en paralelo según el uso de CPU, el uso de memoria y las operaciones de entrada y salida por segundo (IOPS). Además, selecciona el DOP con base en el costo de la consulta. |
|
|
Solo nodos de solo lectura |
Adaptativo: igual que |
Use REPLICA_AUTO cuando necesite proteger el nodo principal de la sobrecarga de las consultas en paralelo y, al mismo tiempo, permitir que los nodos de solo lectura escalen el rendimiento de forma adaptativa.
Umbrales basados en recursos
Estos parámetros aplican cuando loose_parallel_degree_policy se establece en AUTO o REPLICA_AUTO. PolarDB deshabilita las consultas en paralelo en un nodo cuando se supera cualquier umbral.
|
Parámetro |
Alcance |
Valor predeterminado |
Comportamiento del umbral |
|
|
Global |
70 |
Deshabilita las consultas en paralelo cuando el uso de CPU supera este porcentaje. Valores válidos: de 0 a 100. |
|
|
Global |
90 |
Deshabilita las consultas en paralelo cuando el uso de memoria supera este porcentaje. Valores válidos: de 0 a 100. |
|
|
Global |
80 |
Deshabilita las consultas en paralelo cuando el uso de IOPS supera este porcentaje. Valores válidos: de 0 a 100. |
Supervisar la ejecución de consultas en paralelo
Use las variables de estado que se muestran a continuación para dar seguimiento a la frecuencia con la que las consultas en paralelo vuelven a la ejecución secuencial.
|
Variable |
Alcance |
Descripción |
|
|
Global, sesión |
Número de consultas que volvieron a la ejecución secuencial porque se alcanzó |
|
|
Global, sesión |
Número de consultas que volvieron a la ejecución secuencial por un tiempo de espera agotado en la cola. Un incremento constante indica que las consultas esperan demasiado tiempo. Considere aumentar |
|
|
Global |
Número actual de workers en paralelo activos. Úsela para medir qué tan cerca está del límite de |