Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-06-12 GMT+08:00

Descripción de características

Los grupos de recursos de GaussDB(DWS) proporcionan gestión de concurrencia, gestión de memoria, gestión de CPU y reglas de excepción.

Gestión de Concurrencia

La simultaneidad representa el número máximo de consultas simultáneas en un grupo de recursos. La gestión de simultaneidad puede limitar el número de consultas simultáneas para reducir la contención de recursos y mejorar la utilización de recursos.

Las reglas de gestión de concurrencia son las siguientes:

  • Si se habilita la aceleración de consultas cortas, las consultas complejas se encuentran bajo control de simultaneidad del grupo de recursos y las consultas simples se encuentran bajo control de simultaneidad de consultas cortas.
  • Si la aceleración de consultas cortas está deshabilitada, las consultas complejas y simples se encuentran bajo control de simultaneidad del grupo de recursos. El control de simultaneidad de consulta corta no es válido.

Gestión de memoria

Cada grupo de recursos ocupa un cierto porcentaje de memoria.

La gestión de la memoria tiene como objetivo prevenir la falta de memoria (OOM) en una base de datos, aislar la memoria de diferentes grupos de recursos y controlar el uso de la memoria. La memoria se gestiona desde los siguientes aspectos:

  • Gestión global de memoria

    Para evitar OOM, establezca el límite superior global de memoria (max_process_memory) en un valor adecuado. La gestión global de la memoria antes de una consulta controla el uso de la memoria para evitar la gestión de la OOM. La gestión global de memoria durante una consulta evita errores durante la ejecución de la consulta.

    • Gestión antes de una consulta

      El servicio comprueba el uso estimado de memoria de una consulta en la cola lenta y lo compara con el uso real. La estimación se ajustará si es menor que el uso real. Antes de ejecutar una consulta, el servicio comprueba si la memoria disponible es suficiente para la consulta. En caso afirmativo, la consulta se puede ejecutar directamente. Si no, la consulta debe ponerse en cola y ejecutarse después de que otras consultas liberen recursos.

    • Gestión durante una consulta

      Durante una consulta, el servicio comprueba si la memoria solicitada excede un cierto límite. En caso afirmativo, se informará de un error y se liberará la memoria ocupada por la consulta.

  • Gestión de memoria del grupo de recursos

    La gestión de la memoria del grupo de recursos pone un límite a las cuotas dedicadas. Una cola de carga de trabajo solo puede usar la memoria que se le ha asignado y no puede usar memoria inactiva en otros grupos de recursos.

    La memoria del grupo de recursos se asigna en porcentaje. El rango de valores es de 0 a 100. El valor 0 indica que el grupo de recursos no realiza la gestión de memoria. El valor 100 indica que el grupo de recursos realiza la gestión de memoria y puede usar toda la memoria global.

    La suma de los porcentajes de memoria asignados a todos los grupos de recursos no puede exceder de 100. La gestión de la memoria del grupo de recursos sólo se realiza antes de que se inicie una consulta en la cola lenta. Funciona de una manera similar a la gestión global de memoria antes de una consulta. Antes de ejecutar una consulta en la cola lenta en un grupo de recursos, se estima su uso de memoria. Si la estimación es mayor que la memoria del grupo de recursos, la consulta necesita estar en cola y solo puede ejecutarse después de que las consultas anteriores en el grupo estén completas y se liberen los recursos.

Gestión de CPU

El uso compartido de CPU y el límite de CPU se pueden gestionar.

  • Compartimiento de CPU: si el sistema está muy cargado, los recursos de CPU se asignan a grupos de recursos basados en los recursos compartidos de CPU específicos. Si el sistema no está ocupado, esta configuración no tiene efecto.
  • Límite de CPU: especifica el número máximo de núcleos de CPU utilizados por un grupo de recursos. El uso de recursos de los trabajos en el grupo de recursos no puede exceder este límite independientemente de si el sistema está ocupado o no.

Elija cualquiera de los métodos de gestión anteriores según sea necesario. En la gestión de recursos compartidos de CPU, las CPU se pueden compartir y utilizar completamente, pero los grupos de recursos no están aislados y pueden afectar el rendimiento de las consultas entre sí. En la gestión de límites de CPU, las CPU de diferentes grupos de recursos están aisladas, pero esto puede dar como resultado el desperdicio de recursos inactivos.

Solo las versiones 8.1.3 y posteriores admiten la gestión de límites de CPU.

Reglas de Excepción

Para evitar el bloqueo de consultas o el deterioro del rendimiento, puede configurar reglas de excepción para permitir que el servicio identifique y maneje automáticamente consultas anormales, evitando que las sentencias SQL lentas ocupen demasiados recursos durante mucho tiempo.

En la siguiente tabla se describen las reglas de excepción.

Tabla 1 Parámetros de regla de excepción

Parámetro

Descripción

Rango de valores (0 significa que no hay límite)

Operación

Blocking Time

Tiempo de bloqueo de trabajo. Se refiere al tiempo total dedicado a las colas simultáneas globales y locales. La unidad es segundo.

Por ejemplo, si el tiempo de bloqueo se establece en 300s, un trabajo ejecutado por un usuario en el grupo de recursos se terminará después de bloquearse durante 300 segundos.

Un número entero en el intervalo de 1 a 2,147,483,647. El valor 0 indica que no hay límite.

Terminated o Not limited

Execution Time

Tiempo que se ha invertido en la ejecución del trabajo, en segundos.

Por ejemplo, si Time required for execution se establece en 100s, un trabajo ejecutado por un usuario en el grupo de recursos se terminará después de ejecutarse durante más de 100 segundos.

Un número entero en el intervalo de 1 a 2,147,483,647. El valor 0 indica que no hay límite.

Terminated o Not limited

Total CPU time on all DNs.

Tiempo total de CPU empleado en la ejecución de un trabajo en todos los DN, en segundos.

Un número entero en el intervalo de 1 a 2,147,483,647. El valor 0 indica que no hay límite.

Terminated o Not limited

Interval for Checking CPU Skew Rate

Intervalo para comprobar el sesgo de la CPU, en segundos. Este parámetro se debe establecer junto con Total CPU Time on All DNs.

Un número entero en el intervalo de 1 a 2,147,483,647. El valor 0 indica que no hay límite.

Terminated o Not limited

Total CPU Time Skew Rate on All DNs

Tasa de sesgo de tiempo de CPU de un trabajo ejecutado en los DN. El valor depende de la configuración de Interval for Checking CPU Skew Rate.

Un número entero en el intervalo de 1 a 100. El valor 0 indica que no hay límite.

Terminated o Not limited

Data Spilled to Disk Per DN

Los datos de trabajo máximos permitidos se derraman a los discos en un DN. La unidad es MB.

NOTA:

Esta regla solo es compatible con los clústeres de la versión 8.2.0 o posterior.

Un número entero en el intervalo de 1 a 2,147,483,647. El valor 0 indica que no hay límite.

Terminated o Not limited

Average CPU Usage Per DN

Uso promedio de CPU de un trabajo en cada DN. Si Interval for Checking CPU Skew Rate está configurado, el intervalo tiene efecto para este parámetro. Si el intervalo no está configurado, el intervalo de comprobación es de 30 segundos de forma predeterminada.

NOTA:

Esta regla solo es compatible con los clústeres de la versión 8.2.0 o posterior.

Un número entero en el intervalo de 1 a 100. El valor 0 indica que no hay límite.

Terminated o Not limited