- mod_status shows loads of children in Keepalive state with Seconds Since much higher than
KeepAliveTimeout - eventually the number of these reaches MaxClients, wedging the server
- hung process backtrace like this:
(gdb) bt
#0 0x2814d118 in read () from /usr/lib/libc.so.4
#1 0x2830e69f in ssl_io_hook_read () from /usr/local/libexec/apache/libssl.so
#2 0x806d256 in ap_hook_call_func ()
#3 0x806ce7b in ap_hook_call ()
#4 0x8051bea in ap_read ()
There’s some google-able posts about SSL blocking reads, but
- They’re old posts
- The hung threads aren’t actually on a SSL VirtualHost
Since it’s a busy server there’s this tradeoff between KeepAlives helping by reducing HTTP connection setup / teardown and the need to churn Apache children fast. Since I didn’t have any joy working out the problem, I’ve got around it by just turning KeepAlives off.
Still, it bugs me.
Leave a Reply
Recent articles
- MySQL replication health
(Tuesday, 09. 30. 2008 – No Comments) - Firewalls
(Friday, 09. 5. 2008 – No Comments) - Using Single Sign-On To Integrate Ning With An External Site
(Wednesday, 08. 20. 2008 – No Comments) - High Availability Rails Cluster
(Tuesday, 08. 19. 2008 – No Comments)