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
fix: correct the flow control deprecation notice and tuning guidance
ENABLE_EXPERIMENTAL_FLOW_CONTROL_LAYER=false no longer disables the layer: the
variable only ever appended the gate, so a false value falls through to the
registered default, which is now enabled. Log the observed value and the
featureGates opt-out so the operator who set it can see it is ignored.
The 5000 / 1G defaults belong to priorityBands, not to the global flowControl
caps, which default to unlimited; sizing advice that names the global knob sends
operators to the wrong field and implies a bound that is not configured.
The priority-holdback policy lowers admission ceilings, holding gated traffic in
queue. It is not a shedding knob, and listing it beside the two that do shed
reads as though it were.
Also assert the registered gate default, which nothing covered, and the silent
cases of the ignored-settings warning, which guard the saturationDetector
exclusion that keeps it from firing on every legacy-path startup.
Signed-off-by: Luke Van Drie <lukevandrie@google.com>
setupLog.Info(fmt.Sprintf("The %s environment variable is deprecated and will be removed in a future release; the %s is enabled by default and is configured via featureGatesin the config file", envVar, featureName))
769
+
setupLog.Info(fmt.Sprintf("The %s environment variable (current value %q) is deprecated and will be removed in a future release; the %s is enabled by default, so this variable no longer disables it. To disable it, set featureGates: [%q] in the config file", envVar, os.Getenv(envVar), featureName, featureGate+"=false"))
Copy file name to clipboardExpand all lines: docs/operations.md
+7-4Lines changed: 7 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,10 +21,13 @@ The EPP acts as the routing intelligence engine. Its resource usage scales prima
21
21
-**Inflight Requests Impact**: Memory usage increases with the number of concurrent inflight requests and the output (decode) token length.
22
22
-**Flow Control Queues**: With flow control enabled (the default), requests that cannot dispatch
23
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.
24
+
is bounded per priority band by `priorityBands[].maxRequests` (default 5000) and `maxBytes`
25
+
(default 1G), which `defaultPriorityBand` sets as a template for bands you do not list; budget for
26
+
the sum of the per-band `maxBytes` limits of the priority levels your traffic actually uses, on top
27
+
of the inflight-request sizing above. The global `flowControl.maxRequests` / `maxBytes` caps
28
+
default to unlimited, so set a global `maxBytes` under the container memory limit: at the per-band
29
+
default, a handful of bands clears the sizing guidance below before any band cap engages. Lower
30
+
these limits (or set a shorter `defaultRequestTTL`) to trade queueing for earlier shedding.
28
31
-**Sizing Guidelines**:
29
32
- For a request rate of 50 to 100 requests/second with 1k output tokens, EPP requires between **4 GiB and 6 GiB** of memory.
30
33
- 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.
0 commit comments