php usando ¿Cómo puedo ver cuántas conexiones MySQL están abiertas?




obtener datos mysql php (5)

¿Cómo puedo ver cuántas conexiones se han abierto durante la solicitud actual a través de mysql_connect en PHP que se ejecuta en Apache?

Sé que si llamo a la función mysql_connect 100 veces con los mismos parámetros, siempre devolverá el mismo enlace de conexión. No iniciará una nueva conexión una vez que la conexión ya exista.

Pero solo quiero asegurarme de que mysql_connect no está comenzando una nueva.

Estoy trabajando con un sistema heredado que contiene muchas llamadas a la función mysql_connect .

¿Hay alguna configuración en Apache o hay alguna forma de que pueda registrar esta cantidad de conexiones en el archivo de registro Apache o MySQL?

https://code.i-harness.com


Creo que hay un par de formas:

SHOW STATUS WHERE `variable_name` = 'Threads_connected'

o puede hacer una SHOW PROCESSLIST y descubrir valores únicos en la columna Id . En la antigua API API mysql , existe la función mysql_list_processes que hace lo mismo que SHOW PROCESSLIST , también.

Pero primero debes trabajar para ti. Y tal vez le gustaría comprobar otras variables de ESTADO


Estado actual de las conexiones:

mysqladmin status

Mire los Threads: cuente. Se puede obtener información más detallada sobre las conexiones actuales con los comandos:

[email protected]:~$ mysqladmin -uroot -ppass extended-status | grep Threads
| Threads_cached                           | 0           |
| Threads_connected                        | 3           |
| Threads_created                          | 3           |
| Threads_running                          | 1           |

[email protected]:~$ mysqladmin -uroot -ppass processlist
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 53 | root | localhost |    | Sleep   | 258  |       |                  |
| 54 | root | localhost |    | Sleep   | 253  |       |                  |
| 58 | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+

FYI mysqladmin -v -uroot -ppass processlist es análogo a show full processlist mysqladmin -v -uroot -ppass processlist show full processlist .

Los comandos pueden acortarse a cualquier prefijo único y llamarse simultáneamente:

[email protected]:~$ mysqladmin -v -uroot -ppass proc stat
+----+------+-----------+----+---------+------+-------+-----------------------+
| Id | User | Host      | db | Command | Time | State | Info                  |
+----+------+-----------+----+---------+------+-------+-----------------------+
| 53 | root | localhost |    | Sleep   | 951  |       |                       |
| 54 | root | localhost |    | Sleep   | 946  |       |                       |
| 65 | root | localhost |    | Query   | 0    |       | show full processlist |
+----+------+-----------+----+---------+------+-------+-----------------------+
Uptime: 1675  Threads: 3  Questions: 171  Slow queries: 0  Opens: 235  
Flush tables: 1  Open tables: 57  Queries per second avg: 0.102

Hay otras variables útiles con respecto a las conexiones y en su variable de caso particular Connections podría ayudar a averiguar si su código está haciendo demasiadas conexiones. Simplemente verifique el valor antes y después de ejecutar el código.

# mysql -e 'SHOW STATUS WHERE variable_name LIKE "Threads_%" OR variable_name = "Connections"'

+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Connections       | 22742 |
| Threads_cached    | 1     |
| Threads_connected | 87    |
| Threads_created   | 549   |
| Threads_running   | 51    |
+-------------------+-------+
  • Conexiones

    La cantidad de intentos de conexión (exitosos o no) al servidor MySQL.

  • Threads_cached

    La cantidad de hilos en la memoria caché de hilos.

  • Threads_connected

    El número de conexiones abiertas actualmente.

  • Threads_created

    La cantidad de hilos creados para manejar conexiones. Si Threads_created es grande, es posible que desee aumentar el valor de thread_cache_size. La tasa de error de caché puede calcularse como Threads_created / Connections.

  • Threads_running

    La cantidad de hilos que no están durmiendo.


No creo que pueda ver la cantidad de conexiones, pero puede limitar las conexiones al servidor mysql.


Puede usar el comando de MySQL show processlist para obtener la cantidad de conexiones.





apache