とあるプロジェクトで php-fpm を reload したところ、偶然引っかかった外形監視からリクエスト失敗のアラートが飛んで来ました。
どうやら、reloadの瞬間と外形監視のリクエストがほぼ偶然重なったタイミングで発生したようです。
php-fpmはgraceful restartしません
回避策として、process_control_timeoutを設定しました。 これで絶対に解消するかは未検証なのですが、決済系のAPIがreloadの瞬間で失敗したら厄介につき取り急ぎ。
[global] process_control_timeout=40
あとがき
php-fpm と向き合ってみると、意外とチューニングが難しいことに気づいたり。 とくに pm.max_spare_server と pm.max_children は、アクセスが多いタイミングの処理能力に直結するにつき悩みます。