Вы находитесь на странице: 1из 10

INSTITUTO TECNOLGICO DEL

ISTMO

Carrera:
Ing. en Sistemas Computacionales

Trabajo:
Monitoreo

Integrantes del equipo:


Karen Guadalupe Orozco Luis
Emma Laura Vera Aragn
Ervin Aquino Lpez
MONITOREO EN TIEMPO REAL Y DETENCIN
DE PROCESOS EN MYSQL

Es necesario analizar el consumo de memoria,


disco y CPU en los servidores (particularmente el
de base de datos) para determinar en qu estado
se encontraban durante la ejecucin de la misma.
Se trata de una aplicacin desarrollada por
terceros, implementada utilizando Java
(corriendo sobre un servidor Glassfish) y bases de
datos MySQL.
Al verificar el estado del sistema y los procesos en el
servidor de aplicacin (Glassfish), no se detect un
consumo elevado de CPU, memoria, ni disco. En
cambio, al monitorear el estado del servidor de bases
de datos MySQL (utilizando la herramientaatop) se
detect un elevado consumo de CPU y lecturas a disco
(correspondiente a una larga consultaSELECT, como
demostrar ms adelante).

MySQL utiliza un hilo de ejecucin para cada
conexin al motor de base de datos. Desde la consola
de MySQL es posible listar los hilos en ejecucin
mediante la consultaSHOW PROCESSLIST:
Cada fila representa una conexin. Se observa que la
aplicacin Java en cuestin mantiene 8 conexiones a la base
de datos "db1", desde el servidor Glassfish. Y sobre una de las
conexiones (cuyo "Id" de hilo es "24782") se est ejecutando la
consulta que provoca la demora en la respuesta desde el
servidor Web Glassfish.
La consultaSHOW PROCESSLISTslo muestra los
primeros caracteres de la consulta en el campo "Info". Para
ver la consulta completa, ejecutarSHOW FULL
PROCESSLIST.
Es posible terminar conexiones utilizando el
comandoKILLespecificando el "Id" de thread, por ejemplo:
Se observa que la conexin en cuestin ha sido
finalizada:
Lgicamente, este comando, adems de finalizar la
consulta, cierra la conexin con el cliente. Por ende
se provocan errores en el servidor de aplicacin:

Por esta razn, probablemente ser necesario reiniciar


la aplicacin (en este caso reiniciar el servidor
Glassfish). Esto implica que el comandoKILLslo debe
ser utilizado como una medida drstica para recuperar
un servidor de bases de datos comprometido o
sobrecargado. Por otro lado, si se ejecuta el
comandoKILLa una conexin en la cual se est
ejecutando una
consultaREPAIR_TABLEuOPTIMIZE_TABLEsobre
una tabla MyISAM, se provocar la corrupcin o
destruccin de dicha tabla.
Cuando ejecutshow full processlist(antes de
haber matado el hilo):

Pude comprobar que la consulta ejecutada era la


siguiente (para mantener la confidencialidad de la
aplicacin modifiqu los nombres de todas las
bases de datos, tablas, campos y valores):
https://
www.linuxito.com/gnu-linux/nivel-alto/508-monito
reo-en-tiempo-real-y-detencion-de-procesos-mysql

Вам также может понравиться