現在のリクエスト中にmysql_connect
in PHP Apacheで実行中)で開かれた接続の数を確認するにはどうすればよいですか?
同じパラメーターでmysql_connect
関数を100回呼び出すと、常に同じ接続リンクが返されることを知っています。接続が既に存在する場合、新しい接続は開始されません。
しかし、mysql_connect
が新しいものを開始していないことを確認したいだけです。
私は、多くのmysql_connect
関数呼び出しを含むレガシーシステムを使用しています。
Apacheに設定はありますか、またはこの数の接続をApacheまたはMySQLログファイルに記録する方法はありますか?
いくつかの方法があると思います。
SHOW STATUS WHERE `variable_name` = 'Threads_connected'
または、 SHOW PROCESSLIST
を実行して、Id
列の一意の値を見つけることができます。古いPHP API mysql
には、同じことを行う mysql_list_processes
関数があります。 SHOW PROCESSLIST
としても。
しかし、最初のものはあなたのために働くはずです。そしておそらく他の STATUS変数 をチェックしたいかもしれません
接続に関するその他の有用な変数があります。特定のケースでは、変数 Connections
は、コードがあまりにも多くの接続を行っているかどうかを調べるのに役立ちます。コードを実行する前後に値を確認してください。
# 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 |
+-------------------+-------+
接続
MySQLサーバーへの接続試行回数(成功または失敗)。
Threads_cached
スレッドキャッシュ内のスレッドの数。
Threads_connected
現在開いている接続の数。
Threads_created
接続を処理するために作成されたスレッドの数。 Threads_createdが大きい場合、thread_cache_sizeの値を大きくすることができます。キャッシュミス率は、Threads_created/Connectionsとして計算できます。
Threads_running
スリープしていないスレッドの数。
現在の接続ステータス:
mysqladmin status
見る Threads:
カウント。現在の接続に関する詳細情報は、次のコマンドで取得できます。
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 |
+----+------+-----------+----+---------+------+-------+------------------+
[〜#〜] fyi [〜#〜]mysqladmin -v -uroot -ppass processlist
はshow full processlist
。
コマンドは一意のプレフィックスに短縮して、同時に呼び出すことができます。
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
MySQLコマンドshow processlistを使用して、接続数を取得できます。
接続数は確認できませんが、mysqlサーバーへの接続を制限できます。