Cómo ser alertado proactivamente de problemas de desempeño de SQL Server

Cuando se trata de monitorear el desempeño de SQL Server, hay unas cuantas soluciones nativas de SQL Server que proveen monitoreo de desempeño por defecto. Hemos escrito acerca de algunas de ellas aquí: A DBA guide to SQL Server performance troubleshooting – Part 2 – Monitoring utilities.

El problema viene cuando usted no puede monitorear activa y constantemente sus sistemas. Por ejemplo, si usted experimenta un pico en el desempeño mientras que su monitoreo no está atendido, y esto resulta en una ralentización del sistema o una falla, sus sistemas estaban esencialmente sin monitorear. Si ciertas métricas como el uso del espacio en el disco llegan a un punto crítico durante horas no laborables, vacaciones, feriados, etc., consecuencias similares pueden ocurrir. Así que, a menos que usted pueda observar activamente las 24 horas del día, usted se arriesga a tener huecos en el monitoreo que podrían resultar en una ralentización del sistema o incluso una falla.

Configurando las alertas apropiadamente, usted puede ser habilitado para monitorear pasivamente sus sistemas mientras que recibe alertas proactivamente.

Alertas de SQL Server

El manejo de alertas en SQL Server está disponible vía Alerts. Esta característica le permite ser notificado cuando la métrica alcanza un valor de umbral específico. SQL Server Agent puede mandar mensajes, lanzar aplicaciones o ejecutar tareas si una alerta es desencadenada.

Para configurar una alerta:

  1. Inicie SQL Server Management Studio
  2. Inicie SQL Server Agent si no está corriendo.
  3. Abra el nodo SQL Server Agent y haga clic derecho en Alerts
  4. Seleccione New Alert
  5. En la pestaña General en el diálogo New Alert, establezca la alerta de la condición de desempeño de SQL Server como Type.
  6. En la sección Performance condition alert definition, especifique la métrica de desempeño acerca de la que desea ser alertado y el valor de umbral.

    New alert dialog - specifying the performance metric you want to be alerted for

  7. En la pestaña Response, seleccione si desea ejecutar un trabajo de SQL Server o enviar una notificación por correo electrónico, buscapersonas o Net Send. Las últimas dos opciones serán removidas en futuras versiones de SQL Server.

    Selecting whether you want to execute a SQL Server job, or use notify operators such as email, pager

Note que para enviar correos electrónicos, Database Mail en SQL Server Management Studio tiene que ser configurado.

SQL Server Alerts provee un mecanismo a ser proactivamente notificado de cualquier problema de desempeño en su instancia de SQL Server. Provee una configuración granular de las métricas de desempeño de SQL Server y múltiples acciones para cada alerta desencadenada.

Para cada métrica, usted puede establecer diferentes valores de umbral y acciones. De todas maneras, para hacer eso, usted tiene que crear múltiples alertas, ya que una sola alerta puede tener solo un valor de umbral.

Aunque los diálogos son explicativos, configurar una alarma requiere un número de pasos. Para un gran número de alarmas y muchos valores de umbral para cada una, esto puede consumir mucho tiempo. Revisar, modificar y purgarlas puede tomar bastante tiempo.

Algunas métricas no pueden ser configuradas al nivel de la instancia SQL Server, usted tiene que configurarlas para cada base de datos, incluso si los valores de umbral son los mismos para todas las bases de datos. Si SQL Server colapsa, usted no será notificado que algo salió mal y puede que piense que no hay problemas de desempeño.

Como Alerts está basado en SQL Server Agent, la característica está disponible sólo en las ediciones Enterprise y Standard. Las métricas de desempeño para el sistema no están disponibles.

ApexSQL Monitor

ApexSQL Monitor es una herramienta de monitoreo de desempeño del sistema y de SQL Server herramienta de monitoreo de desempeño del sistema y de SQL Server que provee un conjunto de métricas del sistema operativo, SQL Server y la base de datos. Monitorea el desempeño en tiempo real y presenta métricas en gráficos. Las métricas de desempeño son configurables, por cada una usted puede especificar si gatillar una alerta cuando un valor crítico es alcanzado, así como tres valores de umbral para niveles de severidad bajos, medio y altos, y la frecuencia de alerta.

Para seleccionar una métrica de desempeño para monitorear:

  1. En la Interfaz Gráfica de ApexSQL Monitor, seleccione Metrics en el menú.

    Selecting Metrics in the ApexSQL Monitor menu

  2. Seleccione la instancia de SQL Server en la lista de instancias o configure las métricas a nivel de grupo.

    Note que la configuración de métricas y alertas es aplicada a todos los objetos jerárquicamente debajo del objeto seleccionado y al objeto en sí. En otras palabras, si usted selecciona All instances en la lista, las configuraciones serán aplicadas a todas las instancias SQL Server.

  3. Seleccione las métricas a monitorear marcando sus casillas.

    Selecting the check boxes for the metrics you want to monitor

    Para aprovechar al máximo las alertas, usted tiene que entender la actividad/estado que las métricas de desempeño representan, cómo un cambio del valor de la métrica afecta al desempeño, saber los valores usuales para su sistema y los valores recomendados.

    Los valores de las métricas de desempeño no siempre tienen que igualar los valores recomendados. Para algunas métricas de desempeño, las desviaciones son aceptables. También, otras métricas no tienen un valor recomendado específico. Usted debería monitorear su valor a lo largo del tiempo y establecer una línea de base.

  4. Seleccione las métricas de desempeño para las cuales ApexSQL Monitor desencadenará alertas. Para hacer eso, seleccione la casilla de Alerting adecuada:

    Selecting the performance metrics for which ApexSQL Monitor will trigger alerts

    Las alertas no deberían hacer un ruido excesivo, pero al mismo tiempo, ellas deben ser confiables y gatilladas en todas las situaciones críticas. Actualizando la columna Alert period, es posible definir la cantidad de tiempo para el cual un valor debe exceder el umbral antes de que la alerta sea gatillada.

    Setting the alert period

    Por cada alerta lanzada, usted debería tomar acciones adecuadas. Para poder hacer eso, usted debe entender la métrica, estar listo por adelantado y tener una lista de qué hacer preparada. En ApexSQL Monitor, usted puede también ejecutar scripts SQL o comando de Shell configurando una acción de alerta para la métrica deseada.

  5. Establezca alertas de umbrales para los tres valores de umbral: bajo, medio y algo. ApexSQL Monitor ofrece valores por defecto donde sea posible. Estos valores son sólo una recomendación basada en los valores de umbral comúnmente usados y puede no ser adecuado para su ambiente. Por ejemplo, una recomendación general para el tiempo de uso del procesador es 80%. En un momento de una gran carga en sus servidores, puede que usted no desee ser bombardeado por alertas a menos que el procesador use 85% de su tiempo.

    Metrics thresholds

    Es recomendado establecer los tres umbrales de alertas de seguridad. Aparte de tener alertas con opciones más granulares, usted estará al tanto cuando la severidad de la alerta cambie.

    Para algunas métricas no hay un valor de umbral recomendado, debido a la naturaleza de la métrica. Hay también métricas que no tienen valores recomendados fijos, así que usted debería monitorear la métrica por un momento, calcular la línea base usando la opción Configure baselines, y elija la casilla Baseline threshold para usar un determinado valor de umbral en su sistema:

    Setting alert thresholds in ApexSQL Monitor

    Con ApexSQL Monitor, incluso si la alerta es eliminada pero si la situación no es resuelta, la siguiente vez que la métrica es calculada, como el valor está aún encima del umbral, una alerta será gatillada. Esto provee confiabilidad en situaciones cuando las alertas son eliminadas por error o las acciones tomadas no resuelven el problema.

  6. Actualice el tiempo en la columna Period para establecer la frecuencia que proveerá suficiente información para el monitoreo de desempeño y la resolución de problemas.

    El periodo es aplicado a la lectura de métricas de desempeño y la activación de alertas. Como se dijo, ApexSQL Monitor añadirá casi ninguna carga adicional por la lectura de métricas y la activación de alertas más frecuentes, sino que hará que su repositorio central se llene más rápido.

    Updating the time in the Period column

  7. Cuando las alertas están completamente configuradas, se recomiendo vigilar el sistema por un momento, entender cómo las alertas representan el desempeño del ambiente, y preparar elementos de acción que tomará cuando una métrica alcanza su umbral y activa una alerta.

Usted también puede probarlas. Es el sistema en el que debería apoyarse y eso le mantendrá seguro. Así que asegúrese de que puede apoyarse en él. Al mismo tiempo, pruebe las acciones que tomaría en el caso de que una situación realmente suceda en producción.

Las alertas en ApexSQL Monitor son configuradas fácil y rápidamente. Tres diferentes valores de umbral pueden ser establecidos para cada métrica de desempeño. Aparte de la lista predefinida del sistema, SQL Server y las métricas de desempeño de la base de datos, las alertas pueden ser configuradas y activadas para métricas personalizadas de SQL Server y la base de datos. Las alertas para bases de datos en la edición SQL Server Express están soportadas. Excepto las notificaciones de alertas disponibles en la Interfaz Gráfica de ApexSQL Monitor, las alertas de correo electrónico pueden ser configuradas y el mensaje puede ser enviado para cada métrica después de que la alerta es activada, o un correo electrónico con un resumen puede ser enviado para un grupo deseado de métricas.

Traductor: Daniel Calbimonte

octubre 16, 2016