Multi-user pipeline benchmark: 200 requests, 5ms proxy overhead, 76Mi memory #955
yossiovadia
started this conversation in
Show and tell
Replies: 1 comment
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment

Uh oh!
There was an error while loading. Please reload this page.
Summary
Ran a multi-user load test through a full praxis-ai filter pipeline deployed on OpenShift (IBM Cloud, OCP 4.21). 20 concurrent users, 10 multi-turn conversations each, realistic payloads with growing context.
Backend: llm-katan echo server with simulated latency (
--ttft-ms=800 --itl-ms=15) — zero provider cost.Pipeline
Every request goes through the complete filter chain:
api_key_auth: validates API key via HTTP callout to key management serviceidentity_header_guard: captures identity headers to filter_metadata, strips before upstreamexternal_metering: sends CloudEvents usage reports to metering servicetoken_count: extracts token usage from response bodycredential_injection: swaps client key for provider keyResults
Latency
Note: llm-katan adds 800ms simulated TTFT per request. Subtract that for proxy-only latency.
Proxy overhead (from Prometheus metrics)
The full 8-filter pipeline — including an HTTP callout for auth validation and an async metering report — adds approximately 5 milliseconds of overhead per request.
Resource usage under load
Memory is stable — 74Mi at idle, 76Mi under 20 concurrent users. No growth, no leaks.
Scaling (concurrent users vs latency)
Throughput plateaus at ~7.5 req/s — this is the llm-katan backend limit (single-threaded Python with 800ms TTFT), not Praxis. Praxis CPU scales linearly, memory stays flat.
Setup
feat/dogfood-gatewaybranch onyossiovadia/aiscripts/benchmark.shin the dogfood branchReproduction
The benchmark script and deployment manifests are on the
feat/dogfood-gatewaybranch. llm-katan ispip install llm-katan— starts in milliseconds, zero GPU required.Notes
All reactions