Worker Thread Starvation from Keepalive Mismanagement
warningLong KeepAliveTimeout values in Apache combined with high concurrent connections can starve worker threads, causing Varnish to see backends as busy or unresponsive even when Apache has available capacity.
Observe varnish_backend_reuse declining while varnish_vbe_boot_default_busy increases, particularly if Apache's busy worker count is high but CPU is underutilized. This indicates workers are blocked waiting for keepalive timeout expiration rather than processing requests.
Reduce Apache KeepAliveTimeout to 2-5s for API workloads or 5-15s for static content servers to free workers faster. Switch to Apache event MPM if using prefork/worker to handle keepalive connections more efficiently without blocking worker threads. Configure Varnish backend connection pooling with appropriate timeouts to match Apache's keepalive settings.