You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -157,7 +157,7 @@ JSON output mirrors the same data structure for pipelines:
157
157
"MaxConnectionsPerChild": "0"
158
158
},
159
159
"recommended": {
160
-
"ServerLimit": "256",
160
+
"ServerLimit": "272",
161
161
"MaxRequestWorkers": "256",
162
162
"ThreadsPerChild": "",
163
163
"StartServers": "2",
@@ -170,6 +170,9 @@ JSON output mirrors the same data structure for pipelines:
170
170
}
171
171
```
172
172
173
+
## ServerLimit buffer and "scoreboard full" protection
174
+
Apache keeps old children alive long enough to finish in-flight requests during graceful restarts or MaxConnectionsPerChild recycling. If ServerLimit is set to the exact active process count, those lingering children can temporarily exhaust the scoreboard and block Apache from spawning the replacements, resulting in brief "Scoreboard is full" errors and dropped requests. Apache Smart Tuner pads ServerLimit by a small buffer (5% with an 8-slot minimum) above the calculated MaxRequestWorkers/process count so new workers can come online while old ones drain, without raising steady-state concurrency.
175
+
173
176
## Safety details
174
177
-**Backups:** Target include files are copied with a `.bk-YYYYmmddHHMMSS` suffix before any write.
175
178
-**Scrub legacy blocks:** Existing `prefork.c`, `worker.c`, `event.c`, and `mpm_*` blocks inside the target include are removed before the new tuner block is written.
0 commit comments