ホームページ  >  記事  >  バックエンド開発  >  FPM のあまり知られていない 3 つのモード

FPM のあまり知られていない 3 つのモード

醉折花枝作酒筹
醉折花枝作酒筹転載
2021-07-21 09:39:462180ブラウズ

私たちは php-fpm をよく使用しますが、fpm に 3 つのモードがあることを誰もが知っているわけではありません。今日は Xiaonian が fpm の 3 つのモードについて説明します。必要な場合は参照してください。

FPM のあまり知られていない 3 つのモード

; Choose how the process manager will control the number of child processes.
; Possible Values:
;   static  - a fixed number (pm.max_children) of child processes;
;   dynamic - the number of child processes are set dynamically based on the
;             following directives. With this process management, there will be
;             always at least 1 children.
;             pm.max_children      - the maximum number of children that can
;                                    be alive at the same time.
;             pm.start_servers     - the number of children created on startup.
;             pm.min_spare_servers - the minimum number of children in 'idle'
;                                    state (waiting to process). If the number
;                                    of 'idle' processes is less than this
;                                    number then some children will be created.
;             pm.max_spare_servers - the maximum number of children in 'idle'
;                                    state (waiting to process). If the number
;                                    of 'idle' processes is greater than this
;                                    number then some children will be killed.
;  ondemand - no children are created at startup. Children will be forked when
;             new requests will connect. The following parameter are used:
;             pm.max_children           - the maximum number of children that
;                                         can be alive at the same time.
;             pm.process_idle_timeout   - The number of seconds after which
;                                         an idle process will be killed.
; Note: This value is mandatory.

pm には、静的、動的、オンデマンドの 3 つのモードがあります

static

この方法は比較的単純です、起動時に、マスターは pm.max_children 設定に従って対応する数のワーカー プロセスをフォークアウトします。つまり、ワーカー プロセスの数は固定されています。

dynamic

動的プロセス管理では、fpm の開始時に、pm.start_servers に従って最初に特定の数のワーカーを初期化します。

操作中に、アイドル状態のワーカーの数が構成された pm.min_spare_servers の数よりも少ないことをマスターが検出した場合 (リクエストが多すぎてワーカーが処理できないことを示します)、マスターはワーカーをフォークします。ただし、ワーカーの総数は pm.max_children を超えることはできません。

アイドル状態のワーカーの数が pm.max_spare_servers を超えていることをマスターが検出した場合 (アイドル状態のワーカーが多すぎることを示します)、リソースの過剰な占有を避けるために一部のワーカーが強制終了されます。これら 4 つの値を通じて労働者をサポートします。

ondemand

このメソッドは通常、ほとんど使用されません。起動時にワーカー プロセスは割り当てられず、リクエストがあった後にマスター プロセスにワーカー プロセスをフォークするように通知されます。ワーカーが pm.max_children を超えない場合、ワーカー プロセスは処理完了後すぐに終了せず、アイドル時間が pm.process_idle_timeout を超えた後に終了します。

pm.max_children: 静的モードで開かれた php-fpm プロセスの数。

pm.start_servers: 動的モードで開始する php-fpm プロセスの数。

pm.min_spare_servers: 動的モードでの php-fpm プロセスの最小数。

pm.max_spare_servers: 動的モードでの php-fpm プロセスの最大数。

#FPM の信号処理

php-fpm reload

php-fpm stop

kill SIGUSR1 php-fpm

新しいファイルを再利用し、ログの切断を完了します。

kill SIGUSR2 php-fpm

作業プロセスを再起動し、設定ファイルをリロードしますQ1: php-fpm プロセスを開始し、php-fpm マスター プロセス番号を強制終了した後、サービスは継続できますか? A: いいえ (すべての php-fpm プロセスがシャットダウンされます)

Q2: php-fpm プロセスを開始した後、-9 php-fpm マスター プロセス番号を kill します。サービスは継続できますか? A: はい (マスタープロセスのみが強制終了され、ワー​​クプロセスはまだ動作しています)

Q2: php-fpm プロセスを開始した後、php-fpm ワークプロセス番号を強制終了しても、サービスは継続できますか? A: はい (ワークプロセスが強制終了された後、新しいワークプロセスが開始されます)

FPM のライフサイクル

php_module_startup()

fcgi_accept_request()

php_request_startup()

fmp_request_executing()

php_execute_script ()

fpm_requset_end()

php_request_shutdown()

fpm は常駐プロセスなので、

php_request_shutdown()

の場合、サイクルは fcgi_accept_request() から開始されます。

推奨学習:
php ビデオ チュートリアル

以上がFPM のあまり知られていない 3 つのモードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。