4

アプリ全体の速度が低下し、損傷やその他の問題を引き起こす可能性のあるアプリケーションの問題がいくつかあると思います。
アプリケーションの問題は、スリープしている多くの mysql 接続によって発生します。

SHOW PROCESSLIST;出力 :

| 356058234 | Y  | X:39119 | D | Sleep   |  1442 |       | NULL             |
| 356058441 | Y  | X:39126 | D | Sleep   |  1442 |       | NULL             |
| 356059383 | Y  | X:46615 | D | Sleep   |  2049 |       | NULL             |
| 356059389 | Y  | X:46617 | D | Sleep   |  2052 |       | NULL             |
| 356065991 | Y  | X:39267 | D | Sleep   |  1442 |       | NULL             |
-------------  
452 rows in set (0.00 sec)

またmysqlreport

__ Connections _________________________________________________________
Max used         8001 of 8000      %Max: 100.01
Total         356.07M    58.6/s

これは、私が本当に接続を使い果たしていることを示しています。8000の制限でも。ここに何かがあるはずです。しかし、そのようなものをデバッグするのは面倒です。

とにかく、たとえば次のように netstat を使用してプロセス ID を調べましたnetstat -ntp | grep :39267

tcp        0      0 IP_1:3306      IP_2:38727    VERBUNDEN   791/mysqld

そこで、さらに一歩進んで調べてみると、791次のような長い文字列 (数百行) が出力されます。

tcp        0      0 IP_1:3306      IP_2:34109    VERBUNDEN   791/mysqld      
tcp        0      0 IP_1:3306      IP_3:32864    VERBUNDEN   791/mysqld      
tcp        0      0 IP_1:3306      IP_3:37231    VERBUNDEN   791/mysqld      
tcp        0      0 IP_1:3306      IP_2:38727    VERBUNDEN   791/mysqld      
tcp        0      0 IP_1:3306      IP_2:36645    VERBUNDEN   791/mysqld

しかし、これは私に何を教えてくれますか? 接続が多すぎる問題を実際に引き起こしている手がかりを得るには、さらにどの情報を収集する必要がありますか?

アプリケーションに関する詳細情報:
データベース上で非常に大きな更新、挿入、削除を行うコードを複数のサーバーで実行し、フレームワークGearmanをフォークしてこれらのデータを取得します。PHP 5.4およびZend Framework駆動型アプリケーションで使用されるMySQL INNODB データベースを実行しています。OSはLinux(Debian)です。

4

2 に答える 2