web-dev-qa-db-ja.com

開いているMySQL接続の数を確認するにはどうすればよいですか?

現在のリクエスト中にmysql_connect in PHP Apacheで実行中)で開かれた接続の数を確認するにはどうすればよいですか?

同じパラメーターでmysql_connect関数を100回呼び出すと、常に同じ接続リンクが返されることを知っています。接続が既に存在する場合、新しい接続は開始されません。

しかし、mysql_connectが新しいものを開始していないことを確認したいだけです。

私は、多くのmysql_connect関数呼び出しを含むレガシーシステムを使用しています。

Apacheに設定はありますか、またはこの数の接続をApacheまたはMySQLログファイルに記録する方法はありますか?

36
Sahal

いくつかの方法があると思います。

SHOW STATUS WHERE `variable_name` = 'Threads_connected'

または、 SHOW PROCESSLIST を実行して、Id列の一意の値を見つけることができます。古いPHP API mysqlには、同じことを行う mysql_list_processes 関数があります。 SHOW PROCESSLISTとしても。

しかし、最初のものはあなたのために働くはずです。そしておそらく他の STATUS変数 をチェックしたいかもしれません

51
Abhay

接続に関するその他の有用な変数があります。特定のケースでは、変数 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

    スリープしていないスレッドの数。

33
Kamil Dziedzic

現在の接続ステータス:

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 processlistshow 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
10

MySQLコマンドshow processlistを使用して、接続数を取得できます。

4
gmhk

接続数は確認できませんが、mysqlサーバーへの接続を制限できます。

0
X10nD