PHP / mySQL:「接続が多すぎます」エラーをデバッグする方法?


8

現在、クライアントの専用サーバーでPHP Webサイトを使用していますが、定期的にエラーtoo many connectionsが発生しますが、最大5人のユーザーがこのページを閲覧しています。

ではphpMyAdminmax connections変数がに設定されていることがわかります400

私の会社のローカルMySQLサーバーでは、他の仲間がこのサーバーと同時に使用max connectionsするように設定し200ました。

彼らのサーバーでは他のいくつかのウェブが同じMySQLを大量のトラフィックで使用していると聞きました。

ここに私の質問があります:

  • この問題をデバッグする方法は?
  • 過去10分間に実行されたSQLクエリのリストを調べて、それが私たちの問題なのか、それとも問題なのかを確認できますか?

回答:


2

説明する症状は、持続的な接続を示しています。一部の設定では、PHPは永続的な接続をうまく処理しません。既存の接続を再利用するのではなく、新しい接続を開く傾向があります。この機能を無効にして、問題が解決するかどうか確認することをお勧めします。

改善に気づいた場合は、永続的な呼び出しを微調整するか、永続的に取り除くことができます。


私もそのケースを撃ちます。その変更を行うためにWeb /サーバー構成を変更することはまったくできません(私のWebはpersistent connectionsどこも使用していません)。明日私は彼らに会うつもりです、そして私は彼らにそうするように頼みます
hsz

これには、サーバー構成を変更する必要はありません。アプリケーションのPHPスクリプトを更新するだけで済みます。
Michael Mior

もちろん、同じMySqlサーバーを使用している2番目のWebページにはアクセスできませんmysql_pconnect。そのため、使用する可能性のあるPHPスクリプトを更新できません。phpinfo()`mysql.allow_persistent`がであることを私に示しますOn。そのフラグをに変更しOffても、結果はまったく得られません-そのマシンで変更する必要があります。
hsz

変更さmysql.allow_persistentOff、CMSが高速化され、接続に問題はなくなりました。ありがとう!しかし、どのスクリプトがMySqlサーバーに接続しているかを確認する方法をまだ疑問に思っていますか?
hsz 2010年

SHOW PROCESSLISTは、ユーザー、ホスト、DB、および(運が良ければ)クエリを通知します。
アルバロ・ゴンサレス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.