Herramientas para supervisar SQL Server
SQL Server y Windows incluyen varias
herramientas para supervisar el rendimiento de un servidor. Entre estos
elementos se encuentran los siguientes: el Visor de sucesos de Windows, el
Monitor de sistema de Windows, la ventana Actividad actual del Administrador
corporativo de SQL Server, las herramientas de Transact-SQL, el Analizador de
SQL,Analizador de consultas de SQL Server y JMeter.
Todas las herramientas de supervisión
del rendimiento utilizan recursos del sistema, por lo que es previsible que se
produzca una sobrecarga en el rendimiento al utilizarlas.
Administrador de Tareas de Windows
En nuestro caso estamos utilizando la
version Windows server 2008 R2 este seria el administrador de Tareas como vemos
en la siguiente grafica:
Aplicación de Windows, que permite
entregar en forma gráfica, el rendimiento de diferentes dispositivos del
computador, tales como: CPU, Memoria, Disco y Red.
Monitor de Recursos de Windows
- Pestaña
CPU
En la pestaña CPU podemos analizar y
detener los procesos y servicios actualmente en ejecución. Además se visualizan
los procesos que utilizan más CPU, que es una de las posibles causas que
explicarían una excesiva lentitud de nuestra máquina.
- Pestaña Memoria
Se visualizan los procesos que
actualmente están cargados en la RAM del sistema y el uso que se hace de la
misma, Se puede determinar si hay algún proceso que este consumiendo excesiva
memoria.
- Pestaña de Disco
Se muestran los procesos que están
realizando operaciones de lectura / escritura en el o los discos duros del
computador. También se visualizan las unidades de almacenamiento instaladas en
nuestro equipo. Con esta pestaña podemos observar bastantes variables, entre
otras, el tiempo de respuesta del disco por cada proceso, también el total de
bytes /seg leídos y escritos por cada aplicación entre otras muchas cosas.
- Pestaña de Red
Se muestra en forma detallada
información de los procesos que están ejecutando operaciones de red, los
puertos que están abiertos y las direcciones IP a la que están conectados.
Visor de Sucesos de Windows
Utilice el Visor de sucesos de Windows
para identificar sucesos que puedan estar causando cuellos de botella en el
rendimiento. Con esta información podrá determinar qué sucesos o áreas del
rendimiento conviene examinar con más detalle.
El Visor de sucesos de Windows 2008 R2
permite ver los registros de sucesos descritos en la tabla siguiente.
|
Tipo
|
Descripción
|
|
|
Registro
de aplicación de Windows
|
Contiene
los sucesos que registran las aplicaciones, como SQL Server. Por ejemplo, una
aplicación de base de datos podría anotar un error de archivo en el registro
de aplicación.
|
|
|
Registro
de sistema de Windows
|
Contiene
sucesos que registran los componentes de sistema de Windows. Por ejemplo, un
error al cargar un controlador u otro componente del sistema durante el
inicio del equipo se anotará en el registro de sistema.
|
|
|
Registro
de seguridad de Windows
|
Registra
los sucesos de seguridad de Windows 2000, como los intentos de iniciar una
sesión en el sistema.
|
|
Monitor de Sistema de Windows con SQL
Server
Cuando desee hacer un seguimiento de la
actividad del servidor y obtener estadísticas de su rendimiento, utilice el
Monitor de sistema de Windows. Puede usar esta herramienta para registrar el
rendimiento de objetos como los procesadores, la memoria, la memoria caché, los
subprocesos y los procesos a lo largo de un período o para observar la
actividad del servidor en tiempo real. Esta herramienta gráfica proporciona
funciones de gráficos, alertas e informes. El Monitor de sistema de Windows
incluye muchos contadores, cada uno de los cuales mide algún recurso del
equipo. Es posible ampliarlo de modo que las aplicaciones de servidor puedan
agregar sus propios contadores de rendimiento. Durante la instalación, SQL
Server agrega al Monitor de sistema de Windows contadores que permiten hacer un
seguimiento de los siguientes elementos:
- E/S de SQL Server.
- Uso de la memoria por parte de SQL
Server.
- Conexiones de usuario de SQL
Server.
- Bloqueos en SQL Server.
- Actividad de replicación.
También puede crear un máximo de diez
contadores personalizados y asignarles valores. Cada contador puede supervisar
cualquier información que devuelva una instrucción SQL o cualquier operación
que se realice desde SQL Server, como la ejecución de un procedimiento
almacenado de sistema.
SQL Server Management Studio
Cliente que proporciona una interfaz gráfica para la instancia de
SQLServer. Este software es gratuito. En los equipos está instalada la versión
SQL Server Management Studio 2008 o tambien la version SQL Server 2014 con su
respectiva version de Management Studio.
Ventana Actividad actual del
Administrador corporativo de SQL Server.
Puede utilizar la
ventana Actividad actual en el Administrador corporativo de SQL Server para ver
información gráfica de cualquier instancia de SQL Server relativa a las
conexiones y bloqueos de usuario, el número de procesos, el estado, los
bloqueos y las instrucciones actuales que ejecutan los usuarios activos, así
como para determinar qué objetos están bloqueados y los tipos de bloqueos
presentes.
Informacion de Procesos de SQL Server
La ventana Actividad actual muestra
información acerca de las conexiones abiertas. Permite ver quién se encuentra
conectado actualmente y muestra la última instrucción ejecutada por el usuario.
La ventana Actividad actual muestra información acerca de los bloqueos ordenada
por identificador de proceso o por objeto.
Bloqueo e interbloqueos
SQL Server coloca bloqueos en las
tablas o páginas de datos relevantes, lo que permite bloquear dichos recursos.
La ventana Actividad actual muestra todos los recursos que bloquean otros
procesos, así como cualquier interbloqueo que se haya producido.
Administración de procesos y bloqueos
Los administradores del sistema pueden
ver información adicional acerca de un proceso seleccionado, enviar un mensaje
a un usuario seleccionado o terminar un proceso seleccionado.
JMETER
Es una herramienta de carga para llevar acabo simulaciones sobre
cualquier recurso de Software.
Inicialmente diseñada para pruebas de estrés en aplicaciones web, hoy en
día, su arquitectura ha evolucionado no sólo para llevar acabo pruebas en
componentes habilitados en Internet (HTTP), sino además en Bases de datos,
programas en Perl, requisiciones FTP y prácticamente cualquier otro medio.
Además, posee la capacidad de realizar desde una solicitud sencilla
hasta secuencias de requisiciones que permiten diagnosticar el comportamiento
de una aplicación en condiciones de producción.
En este sentido, simula todas las funcionalidades de un Navegador
("Browser"), o de cualquier otro cliente, siendo capaz de manipular
resultados en determinada requisición y reutilizarlos para ser empleados en una
nueva secuencia.
Tareas
de Supervisión habituales.
SQL Server proporciona herramientas que
puede utilizar para examinar diversos aspectos de su rendimiento. Estas
herramientas ofrecen distintos grados de detalle para ayudarle a aislar las
áreas con problemas. Su objetivo debe ser determinar el factor que tiene un mayor
efecto en el rendimiento. A menudo, para aislar el cuello de botella es
necesario repetir varias veces este proceso de supervisión.
Supervision del Sistema.
Al evaluar el sistema, obsérvelo primero desde una perspectiva más
general, para asegurarse de que dispone de hardware suficiente para satisfacer
los requisitos de las tareas que debe realizar. A continuación, valore los
efectos de la configuración del sistema operativo y el diseño de la aplicación.
Para este tipo de supervisión, puede utilizar:
- Visor
de sucesos de Windows.
- Monitor
de sistema de Windows.
Supervisión especifica de SQL Server
A continuación, supervise áreas específicas de SQL Server. Observe la
actividad de SQL Server y la coherencia de los datos. Supervise la cantidad de
bloqueos y conflictos por los recursos, y el uso de conexiones de usuarios.
Para este tipo de supervisión, puede utilizar:
- La
ventana Actividad actual del Administrador corporativo de SQL Server.
- Procedimientos
almacenados del sistema e instrucciones de Transact-SQL.
- Analizador
de SQL.
Utilice instrucciones del comprobador de coherencia de la base de datos
(DBCC, Database Consistency Checker) para asegurar que las estructuras internas
de datos son correctas.
Rendimiento de consultas específicas
Por último, examine consultas
específicas para evaluar su rendimiento. Entre los elementos que puede revisar
se encuentran el uso de índices, el tiempo de CPU de una consulta y la E/S
efectiva. Para este grado detallado de supervisión puede usar el Analizador de
SQL, el Analizador de consultas SQL y el Asistente para optimización de
índices.
Pruebas
de rendimiento.
Una prueba de carga se realiza
generalmente para observar el comportamiento de una aplicación bajo una
cantidad de peticiones esperada. Esta carga puede ser el número esperado de
usuarios concurrentes utilizando la aplicación y que realizan un número
específico de transacciones durante el tiempo que dura la carga. Esta prueba
puede mostrar los tiempos de respuesta de todas las transacciones importantes
de la aplicación. Si la base de datos, el servidor de aplicaciones, etc.
también se monitorizan, entonces esta prueba puede mostrar el cuello de botella
en la aplicación. Otros componentes pueden evitar que la carga alcance este
componente, lo que aumenta el tiempo que se tarda en completar la carga.
¿Por qué hacer pruebas para encontrar
cuellos de botella?
Para que las pruebas de carga sean
significativas, sería suficiente si simplemente quisiésemos poner fuerza bruta
en la aplicación bajo testeo hasta que esta 'fallara' por algún lado. Pero ese
es un objetivo poco ambicioso que a duras penas justifica el esfuerzo de montar
un entorno de pruebas, crear pruebas y contar con un equipo de Testing. Si
hacemos pruebas de carga las tenemos que hacer con un propósito claro: mejorar
el rendimiento de la aplicación y en consecuencia, su escalabilidad, no
simplemente nos debe valer el saber los límites de nuestra aplicación. Y para
esto debemos ser capaces de detectar cuellos de botella. Esto es lo realmente
importante de las pruebas de carga: detectar cuellos de botella. Saber que
recursos hacen que nuestra aplicación no se ejecute más rápido y sobre todo,
saber donde debemos centrar nuestro esfuerzo económico, bien en forma de más
hardware o bien en forma de esfuerzos de optimización.
Decida que examinar.
Debe supervisar el uso de la memoria,
el uso de la CPU, el rendimiento de la entrada y salida de disco, las
conexiones de usuario y los bloqueos. Para determinar el origen de un cuello de
botella, observe las cuestiones relativas al sistema antes de examinar las
cuestiones referentes al cliente y a las consultas. Por ejemplo, los cuellos de
botella relacionados con el sistema y ocasionados por el uso de los discos y la
memoria pueden afectar al rendimiento general de toda la aplicación, incluidas
las consultas individuales. La resolución de cuestiones como la hiperpaginación
en disco, antes de examinar el rendimiento de una consulta en particular,
resulta muy útil.
Conozca el intervalo de rendimiento
aceptable.
Como ocurre con
cualquier técnica para solucionar problemas, el conocimiento del grado de
rendimiento aceptable ayuda a identificar las áreas problemáticas. Las cifras
pequeñas pueden ser tan significativas como las grandes. Una cifra menor o
mayor de lo esperado puede indicar un posible problema. En ocasiones, un
problema en un área afecta desfavorablemente o disimula problemas en otra. Por
ejemplo: Un componente puede evitar que la carga alcance a otro componente. La
congestión de la red puede impedir que las solicitudes de los clientes lleguen
al servidor. Los clientes pueden tener cuellos de botella que les impidan el
acceso al servidor. Para descubrir los límites reales, puede simular una carga
de trabajo en la BD, mientras supervisa el sistema con las diferentes
herramientas que existen hoy en día.
Un cuello de botella es cualquier
componente o actividad que limita el rendimiento. Todos los sistemas tienen
cuellos de botella, pero uno de los objetivos de la supervisión de un servidor
es localizar aquéllos que reducen el rendimiento por debajo de sus
expectativas. Para ello, debe comprender la naturaleza y el funcionamiento
interno de las operaciones.
|
POSIBLE ÁREA DEL CUELLO DE BOTELLA
|
EFECTOS EN EL
SERVIDOR
|
|
USO DE LA MEMORIA
|
Si no se asignó o no hay disponible suficiente memoria para la BD, el
rendimiento disminuirá. Los datos se deben leer en el disco, y no
directamente en la caché de datos. Los sistemas operativos realizan una
paginación excesiva intercambiando datos con el disco cuando son necesarias
las páginas.
|
|
USO DE LA CPU
|
Un uso excesivo continuo de la CPU puede indicar que las consultas de
diferentes transacciones SQL deben optimizarse o que es necesaria una
actualización de la CPU.
La CPU controla los recursos del sistema y ejecuta los procesos de
usuario. El principal objetivo con este dispositivo es lograr que no haya
bloqueos de procesos para conseguirla. Si el sistema operativo, o los
procesos de los usuarios, hacen muchas demandas de CPU, ésta se convierte en
un cuello de botella. Esto suele ocurrir cuando hay muchas faltas de página o
se realiza mucho swapping.
|
|
ENTRADA/SALIDA (E/S) DE DISCO
|
Las consultas de transacciones SQL se pueden optimizar para reducir la
E/S innecesaria; por ejemplo, mediante el uso de índices.
Los discos tienen una velocidad de entrada/salida. Cuando se requieren
datos a una velocidad mayor que ésta, el disco se convierte en un cuello de
botella. Dependiendo de cómo se organicen los datos en el disco, se
conseguirá reducir la probabilidad de empeorar las prestaciones. Los
principios básicos que se deberían seguir para repartir los datos en los
discos son los siguientes: Los ficheros del sistema operativo deben estar
separados de los ficheros de la base de datos. Los ficheros de datos deben
estar separados de los ficheros de índices Los ficheros con los diarios de
operaciones deben estar separados del resto de los ficheros de la base de
datos.
|
|
CONEXIONES DE USUARIO
|
Puede haber demasiados usuarios obteniendo acceso al servidor de forma
simultánea, lo que disminuye el rendimiento.
|
|
BLOQUEOS DE CIERRE
|
Las aplicaciones diseñadas incorrectamente pueden causar simultaneidad
de obstáculos y bloqueos, lo que genera tiempos de respuesta más largos y un
menor rendimiento de las transacciones.
|
|
LA RED
|
Se convierte en un cuello de botella cuando tiene mucho tráfico y
cuando hay muchas colisiones.
Las solicitudes de cliente pueden tardar más tiempo debido a una
congestión de la red.
|
Deteccion
de cuellos de botella en el rendimiento
El acceso en forma paralela o bien al
mismo tiempo a los recursos del sistema, pueden provocar los cuellos de
botella. Estos que son inevitables, existen en todos los software. Pero en esta
ocasión, se hablará de los cuellos de botella que se producen en las Bases de
datos. Éstos se pueden identificar en forma inmediata, cuando se produce una
mayor demanda del recurso y este responde de manera ineficiente, entregando
como respuesta un tiempo muy largo de ejecución. Los cuellos de botella, pueden
corregirse.
CAUSAS DE LOS CUELLOS DE BOTELLA:
Estas son las causas de cuellos de
botella que surgen durante la ejecución del sistema manejador de bases de Datos
entre las que destacamos a continuación:
- Recursos insuficientes que requieren
componentes adicionales o actualizados.
- Recursos del mismo tipo que no distribuyen de
forma equilibrada las cargas de trabajo; por ejemplo, cuando un recurso
monopoliza un disco.
- Recursos que funcionan incorrectamente.
- Recursos mal configurados.
OPTIMIZACION: ANALIZAR EL QUERY Y SU PLAN DE CONSULTA.
- Optimizar
el query
- Crear
un índice
- Cargar
parcialmente la tabla o tablas a memoria
- Cargar
el índice a memoria
- Cambiar
el esquema de bloqueos
- Particionar
la tabla
- Considerar
un rediseño de la base de datos.
Establecimiento
de una referencia de rendimiento.
Cinco factores clave influyen en el rendimiento de una base de datos:
- Carga
de trabajo. El volumen de actividad del servidor.
- Rendimiento.
Número total de consultas en un intervalo de tiempo dado.
- Recursos
de sistema. Capacidad física del hardware del equipo.
- Optimización.
Diseño de la aplicación y la base de datos.
- Conflictos.
La competencia por los registros de datos.
El plan de rendimiento y las medidas de referencia deben considerar
estas áreas. Cuando haya definido los parámetros de funcionamiento, así como
los recursos, las cargas y los objetivos necesarios para el plan de
rendimiento, deberá supervisar el sistema. Identifique y establezca la
referencia de rendimiento a lo largo de un período. Realice mediciones para
determinar:
- Las
horas de actividad máxima y mínima de la base de datos.
- Los
tiempos de respuesta de los comandos de proceso por lotes y consulta de
producción.
- Los
tiempos de ejecución de los procesos de restauración y copia de seguridad
de la base de datos.
Una vez establecida la referencia, podrá comparar con ella el
rendimiento real del servidor en cada momento y así determinar las áreas que
requieren investigación. Las cifras que estén por encima o por debajo de la
referencia indican las áreas en las que podría realizarse una investigación más
detallada.









No hay comentarios.:
Publicar un comentario