ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルの Memcached 接続タイムアウト問題の解決策

php_PHP チュートリアルの Memcached 接続タイムアウト問題の解決策

WBOY
WBOYオリジナル
2016-07-13 10:43:051360ブラウズ

今日から、サーバーの 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

サーバーが十分な場合は、単一ノードの負荷を軽減するために分散型 memcached クラスターを検討できます。2.5 には接続が多すぎるために発生する oom バグがあると言われています

http://www.bkjia.com/PHPjc/633195.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/633195.html技術記事今日から、サーバーの nginx が大量のログを生成し、PHP 警告: Memcache::connect(): Can't connect to 127.0.0.1:11211、Connection timed out (110) in、および以降のメッセージが表示されることがわかりました。 .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。