![php-fpm:日志中有数百秒](https://linux22.com/image/617312/php-fpm%EF%BC%9A%E6%97%A5%E5%BF%97%E4%B8%AD%E6%9C%89%E6%95%B0%E7%99%BE%E7%A7%92.png)
我有 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是五分钟多一点。
您的进程退出并重新启动的原因是您pm.max_requests
在 php-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
说的?如果这是一个繁忙的网站,一旦达到该数量的请求,它很可能会回收其子进程 - 除非它说 0,在这种情况下,它可能会达到内部超时并关闭子进程以在安静时间节省内存。我知道 IIS 的 FastCGI 处理器会这样做;这里的情况可能是一样的。
来源:http://php-fpm.org/wiki/Configuration_File
编辑:这就是正在发生的事情。一旦一个子进程达到 100 个请求,它就会关闭。PHP-FPM 将在需要时(可能是立即)打开一个新的子进程。