Add roadrunner framework#716
Conversation
|
/benchmark -f roadrunner |
|
👋 |
Benchmark ResultsFramework:
Full log |
|
/benchmark -f roadrunner --save |
|
👋 |
|
|
The auto-buffering path can't handle 128 concurrent 20 MB POSTs
regardless of how the conn accumulates bytes (peak RSS >8 GiB, 0
req/s under the validator's load). All four listeners now declare
`body_buffering => manual`; the upload handler drains the body in
64 KB chunks via `roadrunner_req:read_body/2 #{length => 65536}`.
benchmark-lite roadrunner upload (128c, 5s × 3):
| stage | req/s | RSS |
|---|---:|---:|
| auto (pre-fix) | 749 | 4.1 GiB |
| auto (post roadrunner fixes) | 0 | 8.4 GiB |
| manual stream | 1566 | 399 MiB |
Roadrunner SHA bumped to a8596b786eff for the iodata body field.
Listener opts reshaped in v0.1.0: h2c => enabled becomes protocols => [http2] on plain TCP; TLS h2 uses protocols => [http2, http1] with auto-derived alpn_preferred_protocols. OTP 29 GA dropped the rebar3 TLS-1.2 workaround needed for RC3 + Fastly, so retire config/rebar3_ssl.config + ERL_FLAGS and bump the Dockerfile base to erlang:29.0-alpine. Add 8082 to EXPOSE. README: move baseline-h2c, json-h2c, static-h2 from deferred to covered (19/28) to match meta.json and the live listeners.
The file's own header marked it as a local snapshot to be removed before opening the PR; clearing it out so the merged contribution doesn't ship a stale benchmark capture.
The branch added the framework dir and meta.json but never wired the site-level registry, so the entry wouldn't render in the UI even after benchmark CI populates the per-profile result files.
d9dfda3 to
3ea3a09
Compare
|
@MDA2AV rebased onto main |
|
/benchmark -f roadrunner --save |
|
👋 |
|
|
|
nevermind Ill just run it directly |
Description
roadrunneris a pure-Erlang HTTP/1.1, HTTP/2, and WebSocket server from the Arizona framework, pinned to hex0.1.0on OTP 29.PR Commands — comment on this PR to trigger (requires collaborator approval):
/benchmark -f <framework>/benchmark -f <framework> -t <test>/benchmark -f <framework> --saveAlways specify
-f <framework>. Results are automatically compared against the current leaderboard.Run benchmarks locally
You can validate and benchmark your framework locally with the lite script — no CPU pinning, fixed connection counts, all load generators run in Docker.
Requirements: Docker Engine on Linux. Load generators (gcannon, h2load, h2load-h3, wrk, ghz) are built as self-contained Docker images on first run.