Repository navigation
feat(router): configurable vllm-router health check and circuit breaker - #3895
Closed
faresobeid wants to merge 1 commit into
Closed
faresobeid wants to merge 1 commit into
faresobeid wants to merge 1 commit into
Conversation
faresobeid
force-pushed
the
feat/router-health-settings
branch
from
October 6, 2026 14:53
af4b791 to
524d182
Compare
faresobeid
force-pushed
the
feat/router-health-settings
branch
from
October 6, 2026 17:16
524d182 to
c696e0a
Compare
Contributor
Author
|
Closing: with #3900 removing the API-server GC stalls, the router's default health checks no longer eject healthy engines (worst /health stall 3.7 s at GLM-4.5-Air scale on vLLM 0.31, under the 5 s timeout), so these extra settings aren't needed. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The vllm-router health checker and circuit breaker use the router defaults: 5 s probe timeout, 3 failed probes, circuit breaker on.
On vLLM 0.31,
/healthonly checksAsyncLLM.errored; it does not wait on the engine core. Long prefills and weight updates run in the engine-core process, so they do not delay it. What can delay it is a stalled API-server event loop (e.g. a gen-2 GC pause or a large JSON encode). #3900 removes the main cause of those stalls. These settings are a safety net on top of that: one slow probe or a burst of aborted or timed-out requests should not take a healthy engine out of rotation in the middle of a run.What
New
inference.routerfields (vllm-router only):health_check_timeout_secs--health-check-timeout-secshealth_failure_threshold--health-failure-thresholdcircuit_breaker_failure_thresholdNone= off--cb-failure-threshold Nor--disable-circuit-breakerThe probe interval stays at the router default (20 s). Tradeoff: with these defaults a dead worker can stay in rotation for up to about 10 × (20 + 60) s before the router drops it.
Both launch paths pass the flags: the local
start_routerand_launch_router.sh.j2(SLURM, regular and P/D). The router docs list the new fields.Checks
pytest tests/unit/orchestrator tests/unit/test_configs.py -m "not gpu"andruff check/ruff format --checkpass.