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.
Centro de ayuda/ GaussDB(DWS)/ Guía de gestión/ Monitoreo y alarmas/ Alarmas/ Manejo de alarmas/ DWS_2000000016 Los datos derramados en discos para una sentencia de consulta superan el umbral
Actualización más reciente 2024-06-12 GMT+08:00

DWS_2000000016 Los datos derramados en discos para una sentencia de consulta superan el umbral

Descripción

Durante la ejecución de consultas de servicio, la base de datos puede elegir almacenar el resultado temporal en el disco, que se llama derrames de operador.

GaussDB(DWS) comprueba los registros de gestión de carga de los trabajos que se ejecutan en los CN a través de la vista GS_WLM_SESSION_STATISTICS cada 60 segundos y calcula la cantidad máxima de derrame de datos a los DN.

Si el número de sentencias SQL derramadas a los discos supera los 5 GB (configurable) en 10 minutos (configurable), se notifica una alarma que indica que una sentencia de consulta activa el umbral de derrame de datos. Esta alarma se borra automáticamente cuando el derrame de datos cae por debajo de las condiciones de alarma. Para obtener más información sobre cómo modificar las configuraciones de alarma, consulte Modificación de reglas de alarma.

Si las sentencias SQL bloqueadas que pueden desencadenar la alarma persisten, la alarma se genera de nuevo después de 24 horas (configurable).

Atributos

ID de alarma

Gravedad de alarma

Borrar automáticamente

DWS_2000000016

Crítica

Parámetros

Parámetro

Descripción

Source

Indica el nombre del sistema para el que se genera la alarma y el tipo de alarma detallado.

Cluster Name

ID del clúster para el que se genera la alarma

Location Information

ID y nombre del clúster para el que se genera la alarma

Other Information

CloudService indica el servicio en la nube para el que se genera la alarma, incluido el nombre del servicio, el ID del recurso, el nombre del recurso, el nombre de la base de datos, el nombre de usuario que se conecta al backend y el ID de consulta. first_alarm_time indica la hora en la que se genera la alarma por primera vez. query statement indica la sentencia de consulta que activa la alarma, junto con la cantidad de datos derramados a los discos causados por la sentencia de consulta. Ejemplo: CloudService=DWS,resourceId: xxxx-xxxx-xxxx-xxxx, resourceIdName: test_dws, db_name: test_db, user_name: test_user, query_id: 756942385413326696, first_alarm_time: 2022-12-30:12:42:77: query statement (ID= 756942385413326696) select num,value,cnt,rk,cnt/sumcnt as ratio,sum(ratio) over (over by rk) as cumuratio from...; El conjunto de resultados se derrama a los discos y el tamaño de derrame es de 15 GB.

Time

Indica la hora en la que se generó la alarma.

Status

Indica el estado actual de una alarma.

Puede conectarse a la base de datos y ejecutar el comando SELECT * FROM GS_WLM_SESSION_STATISTICS para ver la columna max_spill_size en la vista.

Impacto en el sistema

Si una gran cantidad de datos se derrama a los discos, se ocupa un gran número de recursos de E/S del sistema. Como resultado, el espacio de disco de datos puede ser insuficiente o estar agotado, provocando que la base de datos pase a ser de sólo lectura e interrumpiendo los servicios.

Causas posibles

  • La cantidad de datos de servicio derramados a los discos excede el umbral de alarma.
  • El rendimiento del plan de consultas SQL es deficiente, lo que hace que una gran cantidad de datos se importen a la memoria y se derrame a los discos.
  • Los datos caducados no se borran de manera oportuna. Como resultado, se analizan demasiados datos no válidos y se derraman a los discos.

Procedimiento de manejo

  1. Comprobar si el plan de ejecución es de bajo rendimiento.

    1. Obtenga la sentencia SQL de la información adicional de la alarma, ejecute la sentencia ANALYZE en las tablas involucradas. Vuelva a ejecutar la sentencia SQL y compruebe si la cantidad de datos derramados a los discos disminuye.
    2. Si no hay ningún efecto obvio, ejecute el comando EXPLAIN PERFORMANCE para ver la información de ejecución real de la sentencia SQL de alarma. Para obtener más información, consulte Plan de ejecución SQL. De acuerdo con la información de ejecución, si tanto el uso estimado de memoria (memoria del operador) como la memoria máxima son grandes, por ejemplo, superiores al 20% de max_process_memory, es necesario optimizar la consulta. Para obtener más información, consulte Proceso de optimización.

  2. Comprobar si la configuración de alarma es apropiado.

    1. Vuelva a la consola de gestión de GaussDB(DWS) y elija Alarms > Alarm Rule.

    2. Haga clic en Modify en la columna Operation de la fila que contiene Data Flushed to Disks of the Query Statement Exceeds the Threshold. Se muestra la página Modifying an Alarm Rule.

    3. Si la capacidad del disco del clúster es alta, puede aumentar el umbral de informes de alarma. Se recomienda que el umbral de notificación de alarma sea inferior o igual al 5% de la capacidad de un único disco de datos.

      Si el umbral es demasiado grande, los datos derramados a un disco pueden provocar alarmas de uso del disco o incluso que el clúster sea de solo lectura. Si el uso del disco de datos es cercano o superior al 80%, se recomienda borrar los datos innecesarios al ajustar el umbral. Para obtener más información sobre la configuración de la interfaz gráfica de usuario, consulte Reglas de alarma.

  3. Elimine las sentencias SQL que causan grandes derrames de datos.

    1. Vuelva a la consola de gestión de GaussDB (DWS).
    2. En la página Clusters, busque la fila que contiene el clúster para el que se genera la alarma y haga clic en Monitoring Panel en la columna Operation.

    3. Elija Monitoring > Queries. Haga clic en para ver el derrame de datos en la columna Max. DN Data Spill (MB).

    4. Después de confirmar con el lado del servicio, seleccione el ID de consulta que desea detener y haga clic en Stop Query.
    5. Ajuste los parámetros de la base de datos para controlar el espacio en disco de las sentencias de servicio. Para obtener más información sobre los parámetros, consulte Control de espacio de disco de sentencia. Para obtener más información sobre el procedimiento, consulte Modificación de parámetros de base de datos.

      Por ejemplo, el valor predeterminado de sql_use_spacelimit es el 10% del espacio de almacenamiento total de la instancia de base de datos. Si el espacio de almacenamiento es suficiente, puede aumentar el valor. Si el volumen de escritura en disco de un solo DN excede el valor, GaussDB(DWS) detiene la consulta y muestra un mensaje que indica que el volumen de escritura en disco de un solo DN excede el umbral.

Borrar alarmas.

Esta alarma se borra automáticamente cuando el derrame de datos cae a un nivel bajo.