2011-06-28 127 views
33

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

Sé que si llamo a mysql_connect función 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 de función mysql_connect.

¿Hay alguna configuración en Apache o hay alguna manera de que pueda registrar este número de conexiones en el archivo de registro de Apache o MySQL?

+0

Una vez que haya una conexión creada correctamente, puede iniciar sesión en. – deW1

Respuesta

46

creo que hay un par de maneras:

SHOW STATUS WHERE `variable_name` = 'Threads_connected' 

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

Pero el primero debe funcionar para usted. Y tal vez le gustaría ver cómo otra STATUS variables

+1

Gracias ... ¡Esto ayuda !! – Sahal

3

Puede utilizar el comando de MySQL show processlist para obtener el número de conexiones.

+0

La lista de procesos mostrará que el servidor mysql está conectado ¿no? ¿O muestra cuántas conexiones se abren? – Sahal

+0

La lista de proceso muestra el proceso, pero está en el momemnt – X10nD

+0

Sí, usted está en este momento, supongo que la pregunta fue para encontrar la cantidad de conexiones abiertas en un momento dado – gmhk

0

No creo que pueda ver el número de conexión, pero puede limitar las conexiones al servidor mysql.

9

estado de las conexiones actuales:

mysqladmin status 

Mira Threads: recuento. Más información detallada acerca de las conexiones actuales se puede obtener 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 | 
+----+------+-----------+----+---------+------+-------+------------------+ 

FYImysqladmin -v -uroot -ppass processlist es analógica de show full processlist.

comandos se puede acortar a un prefijo único, y llamó al mismo tiempo:

[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 
28

Hay otras variables útiles sobre las conexiones y en la variable de caso particular Connections podría ayudar a determinar si el 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

    El número de intentos de conexión (con éxito o no) al servidor MySQL.

  • Threads_cached

    El número de hilos en la memoria caché de hilo.

  • Threads_connected

    El número de conexiones abiertas.

  • Threads_created

    El número de procesos creados para manejar las 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

    El número de subprocesos que no están durmiendo.

Cuestiones relacionadas