mod_h2: 1.0.0: connections start infinitely hanging during ongoing parallel POST uploading workflow
There seems to be a clear pattern that when on of our subcontractors starts doing an active image uploading session to WordPress media library, pretty soon after all new connections hang. Restarting apache
helps immediately.
<IfDefine HTTP2>
LoadModule h2_module modules/mod_h2.so
Protocols h2 http/1.1
ProtocolsHonorOrder on
</IfDefine>
# event MPM
#
# MinSpareThreads: Minimum number of idle threads available to handle request spikes
# MaxSpareThreads: Maximum number of idle threads
# ThreadsPerChild: Number of threads created by each child process
<IfModule mpm_event_module>
# http://mail-archives.apache.org/mod_mbox/httpd-users/201501.mbox/%3CCAHti5NFfMpWwd0LYchR1p4ZBvVSAPPQFVpmCg9ZZSLBQHWMviA@mail.gmail.com%3E
# https://bz.apache.org/bugzilla/show_bug.cgi?id=53555#c14
StartServers 1
ServerLimit 5
MinSpareThreads 25
MaxSpareThreads 100
ThreadsPerChild 200
ThreadLimit 200
MaxRequestWorkers 1000
MaxConnectionsPerChild 100000
</IfModule>
About this issue
- Original URL
- State: closed
- Created 9 years ago
- Comments: 24 (7 by maintainers)
I’ve made a significant discovery wrt to my
mod_proxy_fcgid
setup. There’s not a particularly obvious comment-like note at https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html# UDS does not currently support connection reuse
In my case, I had configured exactly UDS-only +
<Proxy fcgi://www/ enablereuse=on></Proxy>
This caused
php-fpm
processes to pile up in stuckFinishing
state. I learned about thepm.status_path
live status screen setting today which helped a ton with figuring things out.Tomorrow, a new
mod_h2
testing period definitely begins (withoutenablereuse
), because I cannot be sure if previously I wasn’t simply exhausting either Apache or PHP-FPM resources with the above misconfiguration. It’s unfortunate Apache had no warning to stop me from executing it.https://groups.drupal.org/node/229898#comment-788938 also helped me get on the right track - people were debugging
nginx
+fastcgi_keep_conn on;