systemadmin.es > DBA > Ver el estado de un MySQL

Ver el estado de un MySQL

Para ver las queries que se están ejecutando en un MySQL se usa SHOW PROCESSLIST;, pero muchas veces no nos interesa tanto que queries se ejecutan sino la cantidad que hay para ello podemos recurrir a otra variable.

mysql> show processlist;
(...)
6 rows in set (0.00 sec)

Mediante SHOW STATUS podemos ver la cantidad de queries en ejecución con las variables Threads_%:

mysql> show status like 'Threads%';
+-------------------+--------+
| Variable_name     | Value  |
+-------------------+--------+
| Threads_cached    | 25     |
| Threads_connected | 6      |
| Threads_created   | 378847 |
| Threads_running   | 1      |
+-------------------+--------+
4 rows in set (0.00 sec)

Su significado es:

  • Threads_cached: Número de threads en la thread cache, no tiene porque coincidir con thread_cache_size si se estan usando.
  • Threads_connected: Conexiones actualmente activas, lo que en SHOW PROCESSLIST seria el count final: Incluye todas las conexiones activas estén Running, Sleep, Sorting, Connect
  • Threads_created: Número de threads creados, lo que indica que ha fallado la thread cache. Podemos establecer un ratio respecto Connections para saber si debemos ampliarla
  • Threads_running: Número de threads que no están en Sleep, por lo tanto en ejecución

3 comments to “Ver el estado de un MySQL”

  1. Gracias por tu post muy util. 🙂

    Tengo una duda:


    Threads_created: Número de threads creados, lo que indica que ha fallado la thread cache. Podemos establecer un ratio respecto Connections para saber si debemos ampliarla

    Como amplio el “thread_cache” en mi caso a fallado y mucho por que tengo a 0 el “Thread_cache” 🙁

    Gracias.

  2. Jordi, una consulta que puede o no estar relacionada con este tema.
    Tengo un servidor exclusivo para MySQL con discos SSD en Raid 10, buena cantidad de memoria. Controladora con cache de escritura/lectura + bateria.
    El servidor funciona perfecto, es muy eficiente y el uptime se mantiene bajo con casi 9000 bases de datos MySQL.
    El problema que noto es cuando se hace un Show databases, la respuesta es muy lenta. Estimo que esto se debe a que la tabla Db de MySQL tiene unos 11 Mb y esto lentifica la cosa.
    Busqué en la web si a alguien le pasa algo parecido, y sinceramente no encontré nada que me sirva.
    Las bases de datos están correctamente optimizadas, ya que cada tanto corro el mysqlcheck –optimize.
    Incluso el Show Databases para un usuario que tenga solo 2 bases de datos es lento.
    Estoy pensando que esto puede deberse a alguna variable global mal configurada. Pero realmente no encuentro alguna que se relacione con el problema después de leer bastante.
    Me pregunto si alguna vez te consultaron por este tema o si sabés algo al respecto.
    Desde ya gracias..

  3. Resulta interesante, se haces un show databases like ‘db’ con una base de datos en concreto también tarda tanto a salir?

    Es posible que el problema sea del propio MySQL que no este pensado para tener tantas bases de datos

    saludos,

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>