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
docs: cover flow control default in sizing, architecture, and API docs
- operations.md: flow control queues buffer request bodies in EPP memory under
saturation, bounded by per-band maxRequests/maxBytes; note that queues,
fairness, and the saturation view are per replica in Active-Active mode.
- architecture.md: note the flowControl gate is on by default and how to
disable it.
- apix: the FeatureGates doc claimed omitted gates are always disabled; gates
carry per-gate defaults and support the name=false syntax.
- metrics.md: request_processing_duration_seconds note updated for default-on.
Signed-off-by: Luke Van Drie <lukevandrie@google.com>
Copy file name to clipboardExpand all lines: docs/metrics.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -116,7 +116,7 @@ Unlabelled.
116
116
117
117
| Name | Type | Notes |
118
118
|---|---|---|
119
-
|`request_processing_duration_seconds`| Histogram | Time from request receipt until the request body has been handled. Includes admission control, so under the flow control feature gate this covers queue wait; `flow_control_request_queue_duration_seconds` separates it out. |
119
+
|`request_processing_duration_seconds`| Histogram | Time from request receipt until the request body has been handled. Includes admission control, so with flow control on (the default) this covers queue wait; `flow_control_request_queue_duration_seconds` separates it out. |
120
120
|`response_processing_duration_seconds`| Histogram | Sum of the per-chunk handler slices for a streamed response, so model-server generation time between chunks is excluded. For a non-streaming response, the interval from response headers to completion. |
Copy file name to clipboardExpand all lines: docs/operations.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,6 +19,12 @@ The EPP acts as the routing intelligence engine. Its resource usage scales prima
19
19
#### Memory Allocation
20
20
-**Base Memory**: EPP memory usage is relatively low and stable with small output token requests, but scales with the number of concurrent inflight requests.
21
21
-**Inflight Requests Impact**: Memory usage increases with the number of concurrent inflight requests and the output (decode) token length.
22
+
-**Flow Control Queues**: With flow control enabled (the default), requests that cannot dispatch
23
+
under saturation are buffered in EPP memory, including their request bodies. The buffered volume
24
+
is bounded per priority band by `flowControl``maxRequests` (default 5000) and `maxBytes`
25
+
(default 1G); budget for the sum of the per-band `maxBytes` limits of the priority levels your
26
+
traffic actually uses, on top of the inflight-request sizing above. Lower these limits (or set a
27
+
shorter `defaultRequestTTL`) to trade queueing for earlier shedding.
22
28
-**Sizing Guidelines**:
23
29
- For a request rate of 50 to 100 requests/second with 1k output tokens, EPP requires between **4 GiB and 6 GiB** of memory.
24
30
- For workloads with longer output lengths (such as 5k output tokens), memory usage can reach **20+ GiB** due to the accumulation of state for concurrent inflight requests.
@@ -37,6 +43,10 @@ The EPP's scaling behavior and effectiveness are highly dependent on the configu
37
43
| 3 | 2.7x |
38
44
| 4 | 3.5x |
39
45
46
+
-**Note (Flow Control)**: Flow control state (queues, fairness accounting, and the saturation
47
+
view) is per replica and not shared. In Active-Active mode, priority and fairness are enforced
48
+
only within each replica's share of the traffic, and per-band capacity limits apply per
49
+
replica, so the fleet-wide queued volume scales with the replica count.
40
50
-**Warning (Prefix Routing)**: **Active-Active mode should be avoided when using approximate prefix routing.** Because EPP replicas do not share prefix state, each replica only has visibility into the prefix state of the requests it has individually handled. This partition of state significantly degrades prefix cache hit rates, making prefix caching highly inefficient.
41
51
- For more technical details and context on EPP replica state sync and scaling limitations, see [Issue #1290](https://github.com/llm-d/llm-d-router/issues/1290).
0 commit comments