3

NGINX と 3 つのプールを備えた PHP-FPM を備えた Drupal サイトがあります。

私が知りたいのは、FPM プールとは何か、または適切なドキュメントへのリンクを提供することです。このトピックについて検索しましたが、「X」を構成してパフォーマンスを向上させる方法しか見つかりませんでした。

また、pm.max_children とは何ですか? 最近、プール www1 がこの値に達すると、プール www1 が機能しなくなり、PHP-FPM をリロードするまでサイトのページもロックされることがログでわかりました。しばらくすると pm.max_children に到達するのはなぜですか? このイベントを検出して反応する方法はありますか... PHP-FPMをリロードしますか? pm.max_children に到達しないようにする方法はありますか?

皆さんの知識に感謝します。

PD: Drupal と Nginx には perusio の設定を使用しています。

4

1 に答える 1

6

各プールは個別の php のようなものであると簡単に言えます。私の場合、プールを使用して異なるユーザーがそれぞれを実行し、同じサーバー上で実行されている個別の Web サイトに対して、リソースなどに関して適切な制限をそれぞれに与えます。

なぜ同じサイトに 3 つのプールがあるのか​​わかりませんがupstream、nginx で を使用していますか?

同時接続を処理するためmax_childrenに fpm が生成できる、生成されたプロセスの量です。同時接続が多数ある場合は、その数を増やすことをお勧めします。この数に達すると、fpm は別の子を生成せず、待機します。待機中のリクエストを処理するために解放するもの。

編集

この構成で遊んでみてください。役に立つかもしれません。これは構成ファイルのスニペットです。デフォルトではコメントされています。

; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries. For 
; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default Value: 0
;pm.max_requests = 500

こちらももう一つ

; The timeout for serving a single request after which the worker process will
; be killed. This option should be used when the 'max_execution_time' ini option
; does not stop script execution for some reason. A value of '0' means 'off'.
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
; Default Value: 0
;request_terminate_timeout = 0
于 2013-11-10T13:21:51.743 に答える