Comment puis-je voir combien de connexions MySQL sont ouvertes?
Comment puis-je voir combien de connexions ont été ouvertes pendant la requête en cours via mysql_connect
en PHP fonctionnant sur Apache?
Je sais que si j'appelle la fonction mysql_connect
100 fois avec les mêmes paramètres, elle retournera toujours le même lien de connexion. Il ne démarrera pas une nouvelle connexion une fois que la connexion existe déjà.
Mais je veux juste m'assurer que mysql_connect
n'en démarre pas un nouveau.
Je travaille avec un système hérité qui contient de nombreux appels de fonction mysql_connect
.
Est il n'y a aucun paramètre dans Apache ou est-il possible de consigner ce nombre de connexions dans le fichier journal Apache ou MySQL?
5 réponses
Je pense qu'il y a deux façons:
SHOW STATUS WHERE `variable_name` = 'Threads_connected'
Ou vous pouvez faire un SHOW PROCESSLIST
et trouvez des valeurs uniques dans la colonne Id
. Dans l'ancienne API PHP mysql
, Il y a mysql_list_processes
Fonction qui fait la même chose que SHOW PROCESSLIST
, aussi.
Mais le premier devrait travailler pour vous. Et peut-être que vous pourriez vouloir vérifier sur d'autres variables D'état
Il existe d'autres variables utiles concernant les connexions et, dans votre cas particulier, la variable Connections
cela pourrait aider à savoir si votre code fait trop de connexions. Il suffit de vérifier la valeur avant et après l'exécution du code.
# 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 |
+-------------------+-------+
-
Connexions
Le nombre de tentatives de connexion (réussies ou non) au serveur MySQL.
-
Threads_cached
Le nombre de threads dans le thread cache.
-
Threads_connected
Le nombre de connexions actuellement ouvertes.
-
Threads_created
Nombre de threads créés pour gérer les connexions. Si Threads_created est grand, vous pouvez augmenter la valeur thread_cache_size. Le taux de manque de cache peut être calculé comme Threads_created / Connections.
-
Threads_running
Le nombre de threads qui ne dorment pas.
État actuel des connexions:
mysqladmin status
Regardez Threads:
comte. Des informations plus détaillées sur les connexions actuelles peuvent être obtenues avec les commandes:
user@host:~$ mysqladmin -uroot -ppass extended-status | grep Threads
| Threads_cached | 0 |
| Threads_connected | 3 |
| Threads_created | 3 |
| Threads_running | 1 |
user@host:~$ 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 |
+----+------+-----------+----+---------+------+-------+------------------+
Pour info mysqladmin -v -uroot -ppass processlist
est analogique de show full processlist
.
Les commandes peuvent être raccourcies à n'importe quel préfixe unique, et appelées simultanément:
user@host:~$ 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
Vous pouvez utiliser la commande MySQL show processlist pour obtenir le nombre de connexions.
Je ne pense pas que vous pouvez voir le nombre de connexion, mais peut limiter les connexions au serveur mysql.