Analizar el rendimiento de la base de datos con eventos extendidos

En esta página se describe cómo usar eventos extendidos (XEvents) en tus instancias.

Cloud SQL admite el uso de XEvents para monitorizar, identificar y solucionar problemas de rendimiento de tu base de datos. Para ello, crea sesiones de XEvent y lee archivos de salida de XEvent. Puedes leer los archivos de salida de XEvent en la instancia o descargarlos de un segmento de Cloud Storage.

Antes de empezar

Si quieres subir tus archivos XEvent a un segmento de Cloud Storage, crea un segmento en tu cuenta de Google Cloud .

Prácticas recomendadas

  • Para evitar transferir archivos grandes entre regiones, te recomendamos que hagas una de las siguientes acciones:
    • Crear segmentos de Cloud Storage multirregionales
    • Configura el segmento de Cloud Storage de destino en la misma región que la instancia
  • Antes de usar XEvents, habilita los aumentos automáticos de almacenamiento. Los archivos de salida de XEvent pueden necesitar una cantidad de espacio en disco considerable, en función de su tamaño total y de los intervalos de retención.
  • Para evitar que se conserven demasiados archivos XEvent durante mucho tiempo, configura una política de conservación de datos en tu segmento de Cloud Storage.
  • Si crea una sesión de XEvents mediante la interfaz de usuario de SSMS, pero no aparecen algunos cuadros para los valores de entrada, cambie el tamaño de la ventana Crear sesión de XEvents.

Cómo crear sesiones de eventos extendidos

XEvents se habilita automáticamente en tus instancias.

Usa el comando CREATE EVENT SESSION para definir nuevas sesiones de XEvents. También puede usar la interfaz de usuario de SQL Server Management Studio (SSMS) para crear sesiones de eventos extendidos.

Cloud SQL aplica los siguientes parámetros a todas las sesiones de XEvent:

Parámetro Descripción Valores permitidos
FILENAME Especifica el nombre de archivo y la ruta para almacenar los datos de la sesión de eventos extendidos. Cualquier ruta que empiece por /var/opt/mssql/xevents/
MAX_FILE_SIZE Especifica el tamaño máximo de cada archivo de salida antes de que se cree un archivo nuevo. Un mínimo de 10 MB
Un máximo de 1 GB
MAX_MEMORY Especifica la cantidad máxima de memoria que se asignará a la sesión para el almacenamiento en búfer de eventos. Un mínimo de 4 MB
Un máximo de 8 MB
MAX_DISPATCH_LATENCY Especifica el tiempo máximo (en segundos) que los eventos pueden permanecer en la cola de envío de eventos antes de enviarse al destino. Un mínimo de 1 segundo
Un máximo de 30 segundos
MAX_EVENT_SIZE Define el tamaño máximo de cada evento, en bytes. Un mínimo de 4 MB
Un máximo de 8 MB

Parámetros de configuración de la sesión de XEvent

Puede configurar sesiones de XEvent usando los siguientes parámetros como marcas personalizadas:

Parámetro Descripción
cloud sql xe bucket name Especifica el segmento de Cloud Storage al que quieres subir la salida de la sesión de XEvent. Si no se especifica, Cloud SQL no sube los datos de salida de la sesión de XEvent a Cloud Storage.
cloud sql xe output total disk size (mb) Especifica la cantidad de espacio en disco que se reservará para la salida de todas las sesiones de XEvents. Si no se especifica, Cloud SQL usa un espacio en disco predeterminado de 512 MB. Si los archivos de salida de XEvent usan más espacio en disco que el valor de cloud sql xe output total disk size (mb), Cloud SQL elimina estos archivos del disco.
cloud sql xe file retention (mins) Especifica el tiempo de retención en minutos de la instancia para los archivos generados por los destinos de archivo de las sesiones de XEvent. Si no se especifica ningún valor, Cloud SQL usa el valor predeterminado de 7 días.
cloud sql xe upload interval (mins) Especifica el intervalo de subida de los archivos XEvent que se suben a Cloud Storage. Si no se especifica ningún valor, Cloud SQL usará el valor predeterminado de 10 minutos.

Para obtener más información sobre cómo definir estas marcas, consulta Configurar marcas de la base de datos.

Cómo leer archivos de salida de sesiones de eventos extendidos

Puedes leer archivos de salida de sesiones de eventos extendidos desde una instancia de Cloud SQL o desde un segmento de Cloud Storage.

Leer archivos de salida de eventos extendidos de una instancia

Para recuperar los datos de un archivo XEvent que crea una sesión XEvent, usa la función sys.fn_xe_file_target_read_file.

Veamos un ejemplo:

SELECT * FROM sys.fn_xe_file_target_read_file('/var/opt/mssql/xevents/filename*, NULL, NULL, NULL);

Leer archivos de salida de XEvent de un contenedor

Para leer archivos de salida de XEvent de un segmento de Cloud Storage, descarga los archivos del segmento en una instancia de SQL Server. Puedes descargarla desde una de las siguientes instancias:

  • Una instancia de Windows de Compute Engine
  • Una instancia de Linux de Compute Engine
  • Otro tipo de instancia que ejecuta SQL Server

A continuación, transfiere los archivos de salida de XEvent del segmento a una ubicación a la que pueda acceder esa instancia, como su disco local. A continuación, para devolver información del archivo de salida XEvent, ejecuta la función sys.fn_xe_file_target_read_file con una cuenta que tenga el permiso VIEW SERVER STATE en el servidor. Para obtener más información sobre los permisos, consulta el artículo Permisos.

Monitorizar métricas

Puedes monitorizar las siguientes operaciones relacionadas con xevent como parte de las métricas de Cloud SQL, disponibles a través del explorador de métricas:

  • database/sqlserver/xevents_upload_count: indica el total de intentos de subida de archivos de eventos extendidos que se han completado correctamente y que han fallado. Consulta esta métrica para monitorizar si las subidas se han completado correctamente.
  • database/sqlserver/xevents_size: indica la cantidad de espacio en disco que utilizan los archivos xevent almacenados en la instancia, en bytes.

Monitorizar sesiones de eventos extendidos

Puede monitorizar las actividades relacionadas con la sesión de XEvent a través del archivo xevents.log para las siguientes operaciones:

  • Los archivos de salida de XEvent que se han quitado del disco, que no se han subido a Cloud Storage y que ocupaban un espacio en disco superior al valor asociado a cloud sql xe output total disk size (mb).
  • Los archivos de salida de XEvent que se han eliminado del disco, que no se han subido a Cloud Storage y que son anteriores al valor asociado a cloud sql xe file retention.

Consideraciones sobre las réplicas de lectura

Esta sección contiene información sobre las sesiones de XEvent de las réplicas de lectura nuevas y las que ya existen.

Para las réplicas de lectura nuevas

  • Todos los parámetros de configuración de la sesión XEvent que se transfieren a través de las marcas de la base de datos de la instancia original están disponibles en la réplica de lectura recién creada.
  • Todas las sesiones de XEvent presentes en la instancia original cuando se crean las réplicas de lectura están disponibles en la réplica de lectura. Ten en cuenta que las sesiones de XEvent en la réplica de lectura deben iniciarse manualmente, a menos que estén configuradas para iniciarse automáticamente. Para obtener más información, consulta Cómo crear sesiones de eventos extendidos.
  • Si clonas una instancia principal, las marcas de base de datos que aparezcan en la instancia principal se propagarán a la instancia clonada. Además, debes conceder permisos a la cuenta de servicio de la instancia clonada para que vuelva a acceder al segmento de Cloud Storage.

Para réplicas de lectura ya creadas

  • Los parámetros de configuración de la sesión XEvent que se transfieren a la instancia original a través de las marcas de la base de datos no se propagan a las réplicas de lectura.
  • Las sesiones de XEvent creadas en la instancia original no se propagan a las réplicas de lectura.