Repository navigation
docs: Admission control is now on by default: in-flight requests bounded at 1024 per core (floor 4096), 0 disables - #152
github-actions[bot] wants to merge 3 commits into
Conversation
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
|
Documentation maintenance: needs-human. Unsuccessful content rounds: 0/3. Operational attempts: 3/3. Head: A worker or publication step failed before the round completed. The content-repair budget was not charged. Inspect the linked workflow; no success verdict was recorded. Human review threads and CODEOWNER approval remain under repository policy. |
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
This source change is not included in the latest stable release, v1.12.0. Public documentation will now target published stable releases only, without unreleased/current-main sections. Closing at the maintainer’s request. The docs-awaiting-release label marks this as deferred rather than declined, so the nightly workflow can rediscover the gap against a stable release and propose a focused, release-correct update. |
What this PR does
Is gateway admission control on by default — how many in-flight requests does a default-configured gateway admit before it queues and sheds, and what do --max-concurrent-requests -1 and 0 mean now?
Why we need it
Source change: smg-project/smg@55316b1
Re-verified pending concern, slugs preserved; its earlier branch codex/nightly-docs-228865b74353c7f7 appears in no existing PR. Commit 270 (#2927, 55316b19, 2026-10-08, 'bound in-flight requests by default instead of queueing without limit'); its supplied diff was read this run and every claim re-verified on the current default-branch snapshot. Current main: model_gateway/src/app_context.rs:136-150 — DEFAULT_INFLIGHT_PER_CORE = 1024, DEFAULT_INFLIGHT_FLOOR = 4096, default_max_concurrent_requests() = available cores x 1024, at least 4096 (available_parallelism, which configuration.md's Runtime section already explains is cgroup-quota-aware); maybe_rate_limiter (app_context.rs:649-685) builds the admission bucket for the unset value: 0 disables with the log 'Admission bound disabled (max_concurrent_requests = 0): in-flight requests are unbounded' (:655-661), any negative value (the -1 default) takes the host-derived bound with the log at :662-668, and a positive value stays the explicit cap (:669-675). Tests pin it: unset_concurrency_cap_gets_a_host_derived_bound (app_context.rs:1099+, the request past the bound is rejected instead of queued without limit) and zero_concurrency_cap_disables_admission_control. The Python launcher matches: the commit's router.py/router_args.py hunks change the docstring and help to '-1 (default) derives the bound from the host (1024 per available core, at least 4096); 0 disables it'. Queue semantics are unchanged (--queue-size 100, --queue-timeout-secs 60, 429 admission_queue_full / 503 admission_queue_timeout). Knock-on: the bucket now exists at the default, so the priority scheduler's request-rate check applies whenever the bucket exists, i.e. unless --max-concurrent-requests is 0 — the '(with --max-concurrent-requests above 0)' parentheticals are stale. Stale docs, all re-read tonight at current line numbers: concepts/reliability/rate-limiting.md:7 'It is off by default; setting --max-concurrent-requests above 0 turns it on' — false on main; :142 '-1 (disabled) ... Any value <= 0 turns admission control off' — false (-1 is now the derived default; only 0 disables); :122's '(with --max-concurrent-requests above 0)' — stale. reference/configuration.md:486 '-1 (unlimited) ... -1 (any value of 0 or less) disables the limit' — false. concepts/architecture/overview.md:89 'Admission Control | Off by default.' — false. reference/metrics.md:225 'Recorded when --max-concurrent-requests is set' and :236 'When --max-concurrent-requests is set and the priority scheduler is off ...' — the precondition is now on-by-default, off only at 0. getting-started/monitoring.md:209 and :514 'admission metrics need --max-concurrent-requests' — same stale precondition. reference/priority-scheduler.md:78's '(with --max-concurrent-requests above 0)' — stale parenthetical. Pages examined and deliberately excluded: getting-started/reliability-controls.md (its examples pass explicit values; :133's metric-appearance sentence belongs to merged #135's observability topic) and reference/api/openai.md:807 (admission_queue_full row stays true; the file is also held by open PR #146). Writer cautions: the same-day #2932 (commit 275, rate under the cap) is a separate deferred concern on these same rows (rate-limiting.md:98-114, configuration.md:489's refill sentences) — this edit must not document or contradict it; scope every edit to the on/off/default contract. priority-scheduler.md's 'only sets the fallback capacity' claim stays true. Version framing: #2927 postdates the v1.12.0 bump (commit 299, #2888, same day but earlier on first-parent history), so present the default bound as current-main behavior newer than v1.12.0, keeping 'unlimited by default, any value <= 0 disables' as the historical caveat for v1.12.0 and earlier in the style these pages already use. One independent concern: one commit changed one flag's default and off-switch contract, corrected on the pages that state that default or its precondition. Ownership: gateway admission/overload behavior is this scan's charter (merged #99/#100 precedent). Dedup: no open or closed PR mentions #2927, the host-derived bound, or on-by-default admission; open PRs #144-150 hold none of these six files; my other selected items touch none of them. Edits are sentence- and row-level, far under 1,000 lines.
Scope: admission-control / inflight-bound-on-by-default. Other concerns are deferred.
How to test
git diff --checkandpnpm checkand the productionpnpm build.Checklist