Skip to content
agentgateway has joined the Agentic AI Foundation — Learn more

For the complete documentation index, see llms.txt. Markdown versions of all docs pages are available by appending .md to any docs URL.

Benchmarking

Page as Markdown

Explore performance benchmarks, methodology, and reproduction guidance for agentgateway inference routing.

Compare the performance of agentgateway on Kubernetes versus a plain Kubernetes Service for inference routing.

In kubernetes mode, an agentgateway proxy runs as the Gateway data plane. An HTTPRoute targets an InferencePool, and the Endpoint Picker Extension (EPP) selects the model-server endpoint.

For setup instructions, see the inference benchmark README.

Test environment

This campaignBenchmark campaignA coordinated set of benchmark runs that compares configurations using a defined test environment, workload, and methodology. compares EPP-based agentgateway routing with a plain Kubernetes Service across eight vLLM model servers. The Kubernetes Service baseline uses Service load-balancing, with no EPP or scoring to route inference requests to a model server endpoint.

The optimized-baseline-qwen3-32b-h100-v0.9 reference profile is used for the campaign, based on llm-d’s Optimized Baseline. The agentgateway treatmentsBenchmark treatmentA specific configuration evaluated in a benchmark, such as a routing strategy or deployment mode, whose results are compared with a baseline. use approximate prefix-cache affinity and token-load scoring to select model-server endpoints.

If you are interested in benchmarks for other llm-d well-lit paths or inference topologies, create an issue that explains your use case.

Prefill/decode (P/D) disaggregation is not used. Each vLLM replica handles both prefill and decode. The comparison configuration disables separate prefill replicas and the P/D routing sidecar, so all treatments use the same model-server topology. These results compare routing within that topology, rather than measuring the effects of P/D disaggregation.

The table summarizes the published campaign. See the campaign manifest for configuration details and the campaign provenance for execution times and shared configuration hashes.

SettingValue
Cluster providergke (Google Kubernetes Engine)
Accelerator type and modelNVIDIA H100 GPU (gpu, h100)
Total accelerators16 GPUs (8 replicas × 2 GPUs per replica)
Backend typevllm
ModelQwen/Qwen3-32B

Note

These are published results for agentgateway v1.4.1, regardless of the docs version selected.

Workload

The workload configuration uses streaming completion requests with the following settings:

  • Arrival pattern: Randomized (Poisson).
  • Request timeout: 300 seconds.
  • Shared-prefix groups: 150 groups with five prompts per group.
  • Prompt lengths: 6,000 tokens for the shared system prompt and 1,200 tokens for the user prompt.
  • Target output length: 1,000 tokens.
  • Multi-turn chat: Disabled.
  • Requested rates: 3–60 requests/s across the measured stages, after warm-up.

Results

Peak output throughput is the maximum number of tokens-per-second across the tested request rates. All other summary metrics are at a rate of 60 requests-per-second. See Metric definitions for more detail.

Higher throughput and lower latency are better. A positive percentage indicates an increase, which is favorable for throughput but unfavorable for latency.

At 10 requests/s, the Service baseline has slightly higher output throughput; both agentgateway modes pull ahead at 15 requests/s, and the baseline’s TTFT rises sharply at 20 requests/s as its throughput begins to plateau. The large TTFT reductions at 60 requests/s therefore describe performance against an overloaded baseline, rather than a uniform improvement across all loads.

MetricKubernetes Serviceagentgateway on KubernetesChange vs. baseline
Peak output tokens/s6,91014,241+106.1%
Achieved requests/s6.7013.96+108.3%
TTFT p50 (s)62.90.2−99.7%
TTFT p90 (s)135.60.2−99.8%
ITL p50 (ms)30.349.6+63.7%

Token throughput

The charts show input, output, and total token throughput in tokens per second across the tested request rates.

Input, output, and total token throughput versus requested QPS for agentgateway on Kubernetes and the Kubernetes Service baseline.
View full-size chart

Mean latency

The charts show mean TTFT, ITL, and NTPOT in milliseconds. The summary table reports latency percentiles, with TTFT in seconds and ITL in milliseconds.

Mean TTFT, ITL, and NTPOT in milliseconds versus requested QPS for agentgateway on Kubernetes and the Kubernetes Service baseline.
View full-size chart

Time to first token (p90)

The chart shows p90 TTFT in milliseconds while the tables report it in seconds.

Time to first token (p90) in milliseconds versus requested QPS for agentgateway on Kubernetes and the Kubernetes Service baseline.
View full-size chart

Note

The published metrics record zero failed requests across all measured stages for the Kubernetes Service baseline and both agentgateway modes. Each treatment has only one repetition, so these results do not quantify run-to-run variability.

Per-rate breakdown

Output throughput is in tokens/s (higher is better); TTFT is in seconds (lower is better).

Requests/sKubernetes Service Outputagentgateway on Kubernetes OutputKubernetes Service TTFT p50agentgateway on Kubernetes TTFT p50Kubernetes Service TTFT p90agentgateway on Kubernetes TTFT p90
31,5701,5200.50.10.50.2
105,1134,7390.50.11.00.2
154,6346,5470.60.11.80.2
206,18210,8532.50.136.00.3
226,25511,5303.90.136.80.2
256,04411,9596.70.141.20.2
306,29612,5327.00.142.60.2
356,14512,2797.60.145.20.2
406,91014,24178.00.2124.50.2
436,85814,21680.20.2129.20.2
466,80014,16365.30.2132.00.2
496,78014,20555.10.2131.30.2
526,89314,11672.00.2133.60.2
556,86514,02456.40.2133.60.2
576,84013,98855.20.2134.30.2
606,87913,99962.90.2135.60.2

Interpreting ITL

At a rate of 60 requests/s, agentgateway has higher p50 ITL (49.6 ms versus 30.3 ms for the Kubernetes Service), but higher throughput and lower time to first token. Read ITL together with TTFT and throughput to assess this tradeoff.

Methodology and metric definitions

Each treatment ran independently with the same workload and model-server topology. The provenance records the execution times and shared configuration hashes. These reports compare each agentgateway deployment mode with the Kubernetes Service baseline.

  • Requested rate (QPS) is the load offered by the generator.
  • Requests/s is the achieved request throughput, which can be lower under load.
  • Output tokens/s measures output throughput; higher is better. The summary reports each treatment’s peak across the tested request rates.
  • TTFT (time to first token) includes waiting for the first response token; lower is better. p50 is the median, and p90 is the 90th percentile.
  • ITL (inter-token latency) measures token cadence after the first token; lower is better, but it must be considered together with TTFT and throughput.
  • NTPOT (normalized time per output token), used in the latency chart, is end-to-end latency divided by output tokens.

Warm-up stages whose requested rate repeats in the measured ladder are excluded.

Evidence and reproduction

The published report, charts, and tables on this page come from campaign optimized-baseline-v0230-gateway-refresh-20260817.

Use the campaign manifest’s versions and configuration when reproducing these results.

For the other deployment mode, see the standalone request scheduler benchmarks.

Was this page helpful?
Agentgateway assistant

Ask me anything about agentgateway configuration, features, or usage.

Note: AI-generated content might contain errors; please verify and test all returned information.

Tip: one topic per conversation gives the best results. Use the + button in the chat header to start a new conversation.

Switching topics? Starting a new conversation improves accuracy.
↑↓ navigate ↵ select esc dismiss

What could be improved?

Your feedback helps us improve assistant answers and identify docs gaps we should fix.

Need more help? Join us on Discord: https://discord.gg/y9efgEmppm

Want to use your own agent? Add the Solo MCP server to query our docs directly. Get started here: https://search.solo.io/.