1
0

More than 3 years have passed since last update.

ElastiCacheのリーダーエンドポイントとphp-fpmについて

Last updated at Posted at 2020-04-28

ElastiCacheのリーダーエンドポイントを導入し、サービス中に台数を増減させた際の挙動メモ

前提情報
・phpで動くwebサービス
・インフラは全てAWS
・キャッシュはElastiCahceのredisを利用
・非クラスターredisを利用しておりphp側ではホストにリーダーエンドポイントを指定
・redisの接続オプションは「persistent:true」

状況
・セールにより一時的に負荷上昇
・オンサービス中にノード追加を実施
・php-fpmプロセスは「pm.max_children」数分だけ既に立ち上がっておりredisとの接続を1度は確立済み

挙動
・リーダーエンドポイントでホストを指定しているが追加されたノードへはリクエストが振り分けられない
・「persistant:true」としているのでリーダーエンドポイントの先にある特定ノードとの接続情報がプロセスに保存されている状態

対処法
1. 手動でphp-fpmを再起動し全プロセスを作り直す (※ただし瞬断する
2. 1プロセスがpm.max_requests分だけリクエストを処理すれば1プロセスごとに自動で再起動されるので、不急であれば放置

参考
php-fpmの設定
https://hackers-high.com/linux/php-fpm-config/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0