Two small sites went down while Apache was still running. The log said the scoreboard was full but not at MaxRequestWorkers, which sounds like a contradiction. After rolling the fleet to PHP-FPM with the event MPM, I’d set ServerLimit to exactly MaxRequestWorkers divided by ThreadsPerChild, so one row on the small boxes. A child that’s exiting keeps its row until its connections drain, so the replacement had nowhere to go. Fifty-two of fifty-eight boxes logged it. The fix was spare rows, a much higher recycle limit, and a full restart rather than a reload, because ServerLimit is only read on restart. Check yours against the arithmetic.
Read more "Apache said the scoreboard was full. It was not full."
