nginx → php-fpm への同時リクエスト数制御
nginx の設定をしていて 負荷をかけたときに、nginx → php-fpm へ同じURLのリクエストが1本しか飛ばないので不思議だった。
fastcgi_cache_lock
fastcgi_cache_lock
When enabled, only one request at a time will be allowed to populate a new cache element
nginx から fcgi で キャッシュをしていると、複数同時に、リクエストが来ても最初の一発でキャッシュが生成されるまで、次のリクエストのレスポンスは待たされる。
なるほどね。キャッシュが生成リクエストを絞ってくれるのでこれはいいな。
大量に画像を生成してインデックスしてくれるので写真のアルバム系アプリやブログ系など、ユーザーごとに内容が変わらなくて、かつ生成に時間がかかるものはとっても負荷がおちるし、作成も同時接続数を考えずにバンバンリクエスト投げればいいっていうHTTPの根本をいじらなくていいのは素敵だと思った。
参考資料
http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_lock_age