Running multiple copies of this script concurrently brings httpd into a hang state, that it will not recover from without manually restarting the httpd server.
ab -n 300 -c 300 http://myserver/mysite/loop.php
<?php /* loop.php */
while (1) sleep (20);
?> I have timeout set to 900 but it does not appear to be working. What does timeout in the httpd.conf do?
Will the httpd.conf timeout protect the server from such scripts or is there something else.
I am configured using Prefork
settings are:
Timeout 900 MaxKeepAliveRequests 100 StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 256 MaxRequestsPerChild 0
# pstack 22040 (root) 22040: /usr/local/apache/bin/httpd -d /usr/local/apache -f /usr/local/apache/ feccc4a8 pollsys (ffbfe388, 0, ffbfe3f0, 0) fec67dc0 pselect (ffbfe388, fed34660, fed34660, 0, ffbfe3f0, 0) + 1c8 fec68138 select (0, 0, 0, 0, ffbfe458, 0) + a0 ff05f5bc apr_sleep (0, f4240, ffbfe554, 0, d0b78, 11176) + 4c 00048fa8 ap_wait_or_timeout (ffbfe554, ffbfe550, ffbfe5d8, d0b78, c5c00, c2800) + 60 00087530 ap_mpm_run (c5c00, c3800, ff, c5c00, c6000, c5c00) + 33c 0002e1e0 main (d0b78, c0c00, c3000, c3000, ceb70, 0) + 784 0002d57c _start (0, 0, 0, 0, 0, 0) + 5c
pstack of all 256 workers is :
pstack 4851 4851: /usr/local/apache/bin/httpd -d /usr/local/apache -f /usr/local/apache/ feccbad0 nanosleep (ffbfd8c0, ffbfd8b8) fe63df54 zif_sleep (1, 1bfaa0, 0, 0, 0, ffbfda60) + 54 fe719330 zend_do_fcall_common_helper_SPEC (ffbfda78, 1, 0, 0, 18, 0) + 940 fe7188f8 execute (1bf580, 1bf618, 1d, ffbfdb44, 4, fe7187ec) + 10c fe6f8bbc zend_execute_scripts (8, 0, 3, ffbfdbb0, fe8a5ed0, ffbfe0f8) + d4 fe6b11e8 php_execute_script (0, fe851228, 6, 0, 70687000, 0) + 218 fe793064 php_handler (2cfbc0, 0, 2cfbc0, c2000, c32b0, 9) + 2cc 00041014 ap_run_handler (2cfbc0, 3b3b3b3b, 70687000, 80808080, ff00, 80808080) + 3c 00041490 ap_invoke_handler (165870, 96c00, 2cfbc0, ffbfe254, fe930028, 0) + b8 0006c310 ap_process_request (2cfbc0, 0, 4, 2cfbc0, 0, 0) + 160 00069478 ap_process_http_connection (2c9e40, 2c9ba8, 2c9ba8, fe, c3b10, eaf60) + 10c 000477b8 ap_run_process_connection (2c9e40, 2c9ba8, 2c9ba8, fe, 2c7bf0, 2cdb78) + 3c 00086ea4 child_main (0, 1, c6000, c5c00, 11177, c5c00) + 42c 00087108 make_child (86800, fe, 6, 0, d66d0, c5c00) + ec 00087b10 ap_mpm_run (c5c00, c3800, ee, c5c00, c6000, c5c00) + 91c 0002e1e0 main (d0b78, c0c00, c3000, c3000, ceb70, 0) + 784 0002d57c _start (0, 0, 0, 0, 0, 0) + 5c # |