今日から、サーバーの nginx が大量のログを生成し、PHP 警告: Memcache::connect(): Can't connect to 127.0.0.1:11211, Connection timed out (110) in が表示されるようになりました。その後、紆余曲折を経て、問題がそこにあることがわかりました。
定期的なログ チェック中に、次のような多数の PHP 接続 Memcached タイムアウト エラー メッセージが Nginx ログで見つかりました。
PHP 警告: Memcache::connect(): 127.0.0.1:11211 に接続できません、... で接続がタイムアウトしました (110)
サーバーに接続し、Memcached プロセスが正常に実行されていることを確認します。次に、テストコードを使用して Memcached が正常に接続できるかどうかを確認します。結果も正常です。そこで、ログを注意深く分析したところ、一定の確率でエラー メッセージが一定間隔で表示されることがわかりました。このとき、先週、アーキテクチャの問題により、PHP のセッション ストレージ パスを Memcached に指定したことを思い出しました。これは、この構成により Memcached の負荷が増加し、同時実行量が多いときに Memcached で接続タイムアウトが発生するためである可能性があります。
原因がわかれば解決するのは簡単です。 Memcached の起動パラメータを再調整し、-c パラメータを追加して接続数を増やします。デフォルトは 1024 ですが、最適な値を見つけるために徐々に増やすことができます。 2048に設定しました。
起動コマンドは次のとおりです:
コードをコピー | |
memcached -d -m 256 -c 2048 -l 127.0.0.1 -p 11211 -u root
|