Edit report at https://bugs.php.net/bug.php?id=52569&edit=1
ID: 52569 Comment by: f...@php.net Reported by: mplomer at gmx dot de Summary: Implement "ondemand" process-manager (to allow zero children) Status: Analyzed Type: Feature/Change Request Package: FPM related PHP Version: 5.3.3 Assigned To: fat Block user comment: N Private report: N New Comment: On what OS/version are you testing ? Previous Comments: ------------------------------------------------------------------------ [2011-07-08 06:00:36] dbetz at df dot eu Hm .. i can only see tons of: 20983 poll([{fd=4, events=POLLIN}], 1, 108) = 0 (Timeout) 20983 clock_gettime(CLOCK_MONOTONIC, {4578918, 852647570}) = 0 20983 clock_gettime(CLOCK_MONOTONIC, {4578918, 852702140}) = 0 20983 clock_gettime(CLOCK_MONOTONIC, {4578918, 852754708}) = 0 20983 clock_gettime(CLOCK_MONOTONIC, {4578918, 852807040}) = 0 20983 poll([{fd=4, events=POLLIN}], 1, 130) = 0 (Timeout) 20983 clock_gettime(CLOCK_MONOTONIC, {4578918, 983213866}) = 0 20983 clock_gettime(CLOCK_MONOTONIC, {4578918, 983267442}) = 0 20983 clock_gettime(CLOCK_MONOTONIC, {4578918, 983323753}) = 0 20983 clock_gettime(CLOCK_MONOTONIC, {4578918, 983368483}) = 0 and then thousands of: 20983 munmap(0xae151000, 1040) = 0 20983 munmap(0xae150000, 1040) = 0 20983 munmap(0xae14f000, 1040) = 0 20983 munmap(0xae14e000, 1040) = 0 20983 munmap(0xae14d000, 1040) = 0 The socket gets created here: 20983 socket(PF_FILE, SOCK_STREAM, 0) = 6 20983 setsockopt(6, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 20983 unlink("/etc/httpd/fastcgi/dynamic/5-53LATEST-wordpressmit.imageupgrade2.domainfactory-kunde.de") = -1 ENOENT (No such file or directory) 20983 umask(0111) = 027 20983 bind(6, {sa_family=AF_FILE, path="/etc/httpd/fastcgi/dynamic/5-53LATEST-wordpressmit.imageupgrade2.domainfactory-kunde.de"}, 110) = 0 20983 umask(027) = 0111 20983 listen(6, 128) = 0 When making an request nothing happens in the strace :-( ------------------------------------------------------------------------ [2011-07-08 05:43:44] f...@php.net You can strace to see what happens: set log_level to debug set daemonize to no then run something like strace -f -s 1024 -o /tmp/php-fpm.strace.log /path/to/php-fpm ------------------------------------------------------------------------ [2011-07-08 05:38:31] dbetz at df dot eu If i can help you with debug informations, pls tell me what information you need. eg traces or gdb ? Greetings, ------------------------------------------------------------------------ [2011-07-07 02:34:46] dbetz at df dot eu Hello, i know, but when i make an request, no child gets spawned. My PHP-FPM has more pools. Every pool is listening to an different socket. The mod_fastcgi 2.4.6 is patched, that it connects to the socket for the domain. Example: Hostname: www.domain.com has PHP Version 5.3.6 FPM Config for Pool is: [domain.com] listen = /etc/httpd/fastcgi/5.3.6-domain.com user = u12345 group = nobody pm = ondemand pm.process_idle_timeout = 10 pm.min_delay_between_fork = 10000 pm.max_children = 5 When now an request for www.domain.com to the apache arrives, the apache looks in the ldap for the PHP Version, then mod_fastcgi searches for socket /etc/httpd/fastcgi/5.3.6-www.domain.com, if not existent for /etc/httpd/fastcgi/5.3.6-domain.com (snips www. ). Now Apache connects over mod_fastcgi to the correct socket, but no child gets spawned with pm = ondemand With dynamic and static all works fine. Any suggestions ? Greetings, Daniel ------------------------------------------------------------------------ [2011-07-06 12:12:34] f...@php.net This is normal. the ONDEMAND pm has been made to avoid forking unnecessary children. Children are forked when requests arrives. Here is what I have on my side: ## conf: pm = ondemand pm.process_idle_timeout = 10 pm.min_delay_between_fork = 10000 # this to avoid the known bug pm.max_children = 5 ## log [06-Jul-2011 18:05:42.236929] NOTICE: pid 2579, fpm_event_loop(), line 267: ready to handle connections [06-Jul-2011 18:05:43.237287] DEBUG: pid 2579, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool direct] currently 0 active children, 0 spare children ## at start, no children have been forked [06-Jul-2011 18:05:44.237661] DEBUG: pid 2579, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool direct] currently 0 active children, 0 spare children ## I request a page and a child is forked to serve the page [06-Jul-2011 18:05:44.902976] DEBUG: pid 2579, fpm_children_make(), line 411: [pool direct] child 2580 started [06-Jul-2011 18:05:44.902987] DEBUG: pid 2579, fpm_pctl_on_socket_accept(), line 543: [pool direct] got accept without idle child available .... I forked, now=1970813.831429 [06-Jul-2011 18:05:45.238081] DEBUG: pid 2579, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool direct] currently 0 active children, 1 spare children [06-Jul-2011 18:05:46.238388] DEBUG: pid 2579, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool direct] currently 0 active children, 1 spare children [06-Jul-2011 18:05:47.238889] DEBUG: pid 2579, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool direct] currently 0 active children, 1 spare children [06-Jul-2011 18:05:48.239385] DEBUG: pid 2579, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool direct] currently 0 active children, 1 spare children [06-Jul-2011 18:05:49.239671] DEBUG: pid 2579, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool direct] currently 0 active children, 1 spare children [06-Jul-2011 18:05:50.240080] DEBUG: pid 2579, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool direct] currently 0 active children, 1 spare children [06-Jul-2011 18:05:51.240520] DEBUG: pid 2579, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool direct] currently 0 active children, 1 spare children [06-Jul-2011 18:05:52.241133] DEBUG: pid 2579, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool direct] currently 0 active children, 1 spare children [06-Jul-2011 18:05:53.241648] DEBUG: pid 2579, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool direct] currently 0 active children, 1 spare children [06-Jul-2011 18:05:54.242040] DEBUG: pid 2579, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool direct] currently 0 active children, 1 spare children [06-Jul-2011 18:05:55.242414] DEBUG: pid 2579, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool direct] currently 0 active children, 1 spare children ## 10s (pm.process_idle_timeout) later, the child has been killed. [06-Jul-2011 18:05:55.243492] DEBUG: pid 2579, fpm_got_signal(), line 76: received SIGCHLD [06-Jul-2011 18:05:55.243514] DEBUG: pid 2579, fpm_children_bury(), line 254: [pool direct] child 2580 has been killed by the process managment after 10.340552 seconds from start [06-Jul-2011 18:05:56.242905] DEBUG: pid 2579, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool direct] currently 0 active children, 0 spare children [06-Jul-2011 18:05:57.243332] DEBUG: pid 2579, fpm_pctl_perform_idle_server_maintenance(), line 362: [pool direct] currently 0 active children, 0 spare children ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=52569 -- Edit this bug report at https://bugs.php.net/bug.php?id=52569&edit=1