3

今夜、ExpressionEngine を使用してクライアント サイトを立ち上げたところ、すぐに使用可能な MySQL 接続数が 100 に達したため、使用可能な接続数を 2 倍にした後も、使用可能なすべての接続を消費し続けました。サーバーを確認すると、Apache 接続も開いたままになっているように見えました。

だから私の質問は、なぜそれらの接続を開いたままにしているのですか?それを修正するにはどうすればよいですか? そうしないと、サイトが読み込まれたときにサイトが糖蜜のように遅くなります。ありがとう。

4

2 に答える 2

4

mysql 接続は、おそらく副作用です。私がこれを言う主な理由は、多数の apache プロセスも実行している場合、EE が MySQL への接続の開始を開始している段階に達しているが、apache/php 側で何かが完了して閉じられるのを待っているためです。繋がり。

EE でテンプレートのデバッグをオンにして、公開サイトの読み込みが遅いページの 1 つにアクセスすることをお勧めしますが、スーパー管理者としてログインしていることを確認してください。そのページを構築するために EE が実行しているすべてのアクション、それにかかった時間、および PHP のメモリ使用量が表示されます。タグ、サードパーティのアドオン、または MySQL で開いている接続の副作用も引き起こしている apache 側の速度低下を引き起こしている何かを特定できる可能性があります。

以下を見たときに、私が始めるべきだったもの: show full processlist; mysql では、実行時間の長いクエリを示すプロセスがリストされているか、またはすべてまたはほとんどが「スリープ中」としてリストされています。眠っている場合は、上記の状況に陥っている可能性が最も高いです。

これは、RSS フィードなどの外部データ ソースや Twitter などの外部 API を呼び出すときにも見られますが、EE テンプレート側での実行に時間がかかりすぎて、EE が EE までこれらの mysql 接続を開いたままにしておくことが原因である可能性があります。 /php が最終的に完了し、接続を適切に閉じる準備が整いました。

于 2012-10-31T07:31:02.017 に答える
0

EE コントロール パネルで、Admin → System Administration → Database Settingsに移動し、 Persistent Database ConnectionがNoに設定されていることを確認します。

/system/exoressionengine/config/config.phpファイルに for の行がないことも確認し$config['pconnect']てください。

于 2012-09-07T12:49:24.317 に答える