php-fpm: ログに数百秒が記録される

php-fpm: ログに数百秒が記録される

私はnginx+php-fpmウェブサーバーを持っています

そこで、php5-fpm.log に多くの奇妙な行があることに気づきました。

[03-Sep-2013 09:25:23] NOTICE: [pool www] child 23999 exited with code 0 after 321.832329 seconds from start
[03-Sep-2013 09:25:23] NOTICE: [pool www] child 24082 started
[03-Sep-2013 09:25:41] NOTICE: [pool www] child 24032 exited with code 0 after 259.247887 seconds from start
[03-Sep-2013 09:25:41] NOTICE: [pool www] child 24083 started
[03-Sep-2013 09:25:47] NOTICE: [pool www] child 24033 exited with code 0 after 255.954602 seconds from start
[03-Sep-2013 09:25:47] NOTICE: [pool www] child 24084 started
[03-Sep-2013 09:25:50] NOTICE: [pool www] child 24014 exited with code 0 after 327.620462 seconds from start
[03-Sep-2013 09:25:50] NOTICE: [pool www] child 24085 started
[03-Sep-2013 09:25:55] NOTICE: [pool www] child 24034 exited with code 0 after 254.974653 seconds from start
[03-Sep-2013 09:25:55] NOTICE: [pool www] child 24086 started
[03-Sep-2013 09:26:01] NOTICE: [pool www] child 24035 exited with code 0 after 253.388234 seconds from start
[03-Sep-2013 09:26:01] NOTICE: [pool www] child 24087 started
[03-Sep-2013 09:26:02] NOTICE: [pool www] child 24036 exited with code 0 after 251.374430 seconds from start
[03-Sep-2013 09:26:02] NOTICE: [pool www] child 24088 started
[03-Sep-2013 09:26:05] NOTICE: [pool www] child 24019 exited with code 0 after 325.601766 seconds from start
[03-Sep-2013 09:26:05] NOTICE: [pool www] child 24089 started
[03-Sep-2013 09:26:09] NOTICE: [pool www] child 24037 exited with code 0 after 255.871955 seconds from start
[03-Sep-2013 09:26:09] NOTICE: [pool www] child 24090 started
[03-Sep-2013 09:26:09] NOTICE: [pool www] child 24038 exited with code 0 after 255.884311 seconds from start
[03-Sep-2013 09:26:09] NOTICE: [pool www] child 24091 started
[03-Sep-2013 09:26:09] NOTICE: [pool www] child 24039 exited with code 0 after 254.826181 seconds from start
[03-Sep-2013 09:26:09] NOTICE: [pool www] child 24092 started
[03-Sep-2013 09:26:12] NOTICE: [pool www] child 24040 exited with code 0 after 256.232759 seconds from start
[03-Sep-2013 09:26:12] NOTICE: [pool www] child 24093 started
[03-Sep-2013 09:26:14] NOTICE: [pool www] child 24027 exited with code 0 after 321.722533 seconds from start

これらの秒数とはどのようなもので、何を意味するのか、誰か教えてもらえますかafter 321.722533 seconds from start?

上院

私の設定は次のとおりです:

pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 100

答え1

「秒」は時間の単位で、321秒は5分ちょっと

プロセスが終了して再起動する理由は、pm.max_requestsphp-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

私たちは見ることができますあなたの設定では に設定されているため100、php-fpm は 100 件のリクエストを処理した後、プロセスをリサイクルします。

答え2

設定には何と書いてありますかmax_requests? これがビジー状態の Web サイトである場合、リクエスト数がその数に達すると、子プロセスがリサイクルされる可能性があります。ただし、0 と表示されている場合は、内部タイムアウトに達し、静かな時間帯にメモリを節約するために子プロセスが閉じられる可能性があります。IIS の FastCGI プロセッサがこれを実行することは知っています。ここでも同じ状況である可能性があります。

出典:http://php-fpm.org/wiki/設定ファイル

編集: では、それが起こっているということです。 1 つの子プロセスが 100 件のリクエストに達するとすぐに、そのプロセスは閉じられます。 PHP-FPM は、必要なときに (すぐに必要になる場合もあります)、新しいプロセスを開きます。

関連情報