Evaluar y finalizar procesos de Mysql

Cuando el servidor se encuentra con mucha carga de CPU, podemos analizar los procesos en ejecución con el comando top en Linux o mediante el administrador de tareas en Windows.

En caso de que el servicio de Mysql sea el que está consumiendo principalmente los recursos, tenemos la posibilidad de ver en detalle lo que está sucediendo.

Para obtener los procesos que se están ejecutando en el servidor Mysql, abrimos una conexión e introducimos el comando:

mysql> SHOW PROCESSLIST;

    Id   User Host            db     Command   Time State  Info 
------ ------ --------------- ------ ------- ------ ------ ----------------
   130   root localhost:51094 (NULL) QUERY        0 (NULL) SHOW PROCESSLIST
   131   root localhost:51095 (NULL) Sleep     1143 (NULL)

En los resultados, se muestran los procesos asociados a la cuenta con la que nos encontramos conectados. Si esta cuenta tiene el privilegio “Process” entonces verá los procesos de TODAS las cuentas (se puede consultar con SHOW PRIVILEGES).

Esta consulta presenta solamente los primeros 100 caracteres de la consulta en la columna Info. Para ver la consulta completa, se debe agregar el parámetro FULL:

mysql> SHOW FULL PROCESSLIST;

Si vemos que alguno de los procesos está bloqueando todo el resto y queremos terminarlo, utilizamos:

mysql> KILL <ID>;

donde ID es el identificador del proceso mostrado en el resultado del PROCESSLIST.

Tagged with: ,
Publicado en Aplicaciones