Skip to content

roadrunner: serve the async delay and short-lived WebSocket profiles - #1411

Open
williamthome wants to merge 2 commits into
MDA2AV:mainfrom
williamthome:entries/roadrunner-async-and-ws-limited
Open

roadrunner: serve the async delay and short-lived WebSocket profiles#1411
williamthome wants to merge 2 commits into
MDA2AV:mainfrom
williamthome:entries/roadrunner-async-and-ws-limited

Conversation

@williamthome

@williamthome williamthome commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Description

Subscribes roadrunner to async and echo-ws-limited: adds the /delay/{ms} endpoint and a deeper h1 accept queue.


PR Commands — comment on this PR to trigger (requires collaborator approval):

Command Description
/benchmark -f <framework> Run every test the framework subscribes to
/benchmark -f <framework> -t <test> Run one test only
/benchmark -f <framework> --save Run and save results (updates the leaderboard on merge)
/benchmark -f <framework> -t <test> --save Run one test and save results
/benchmark -f <framework> --compare <other> Measure the deltas against another framework instead of this one
/benchmark-multiple -f <fw1>,<fw2>,... Benchmark several frameworks in one run — takes -t and --save too; saved results land in a single commit
/benchmark-multiple --save No -f needed: benchmark and save every framework the PR touches
/benchmark-test -t <test> Benchmark all enabled frameworks subscribed to <test> and save the results

For /benchmark, always specify -f <framework>; the flags combine in any order. Results come back as a comment with a per-profile table of RPS, p99, CPU and memory — one table per framework on multi runs. A new benchmark comment while a run is in flight queues behind it (one deep) instead of cancelling it. For multi-framework PRs (dependency bumps, same-language refactors) prefer /benchmark-multiple, which runs everything in a single job and commits all saved results together, so no run overwrites another. --compare works on single-framework runs only.

What the deltas are measured against. By default, this framework's own results published on main - answering "did this change help?". When you are tuning a variant or a successor entry, --compare re-bases them on another entry instead:

/benchmark -f genhttp-11 --compare genhttp-11-kestrel

The reply states which baseline it used, and profiles the other framework does not run show n/a rather than a delta.


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.

./scripts/validate.sh <framework>
./scripts/benchmark-lite.sh <framework> baseline
./scripts/benchmark-lite.sh --load-threads 4 <framework>

Requirements: Docker Engine on Linux. Load generators (gcannon, h2load, h2load-h3, wrk) are built as self-contained Docker images on first run.

@williamthome

Copy link
Copy Markdown
Contributor Author

/benchmark -f roadrunner

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: roadrunner | Test: all tests

Test Conn RPS Rate CPU/req p99 p99.9 CPU Mem Δ RPS Δ Mem
baseline 4096 1,010,710 6380.0% 330MiB +0.8% -2.7%
pipelined 4096 4,333,347 6147.9% 382MiB -0.5% +6.7%
limited-conn 4096 445,926 5362.5% 328MiB +5.9% +1.9%
json-comp 4096 86,404 6165.8% 921MiB -14.3% +4.1%
json-comp 16384 100,228 6360.7% 871MiB -1.2% -4.1%
json-tls 4096 158,385 6199.1% 990MiB ~0% +25.6%
8gbit 512 48,844 0.9769 ⚠️ 356.51us 2907.0us 12796.0us 1794.4% 537MiB +0.8% +5.1%
static-tls 1024 86,715 5471.4% 675MiB +0.4% +1.0%
async-db 1024 130,183 6412.2% 834MiB +1.9% -0.5%
fortunes 1024 64,395 6397.2% 978MiB +1.3% -2.2%
baseline-h2 256 457,364 6596.8% 358MiB +1.5% -11.2%
baseline-h2 1024 465,228 6371.4% 470MiB +1.4% -1.5%
static-h2 256 91,663 5524.0% 438MiB +3.9% -1.4%
static-h2 1024 79,750 5901.7% 886MiB +0.2% -5.0%
baseline-h2c 256 757,602 6619.6% 253MiB +2.5% -0.8%
baseline-h2c 1024 739,476 6586.5% 295MiB +0.9% +1.7%
baseline-h2c 4096 641,510 6392.6% 395MiB +1.8% -14.7%
json-h2c 1024 100,598 4051.5% 985MiB -4.0% +0.3%
json-h2c 4096 105,484 3964.6% 1.7GiB +7.0% -22.7%
baseline-h3 64 104,750 5440.5% 414MiB -6.1% -8.0%
static-h3 64 13,730 5299.8% 664MiB +4.2% +0.3%
echo-ws 512 433,111 5213.6% 213MiB -33.8% -2.7%
echo-ws 4096 1,498,684 6573.7% 458MiB -2.1% +24.1%
echo-ws 16384 1,357,058 6009.1% 488MiB +17.5% -25.5%
echo-ws-pipeline 512 10,024,153 6570.1% 214MiB +4.6% -16.4%
echo-ws-pipeline 4096 9,426,672 6531.2% 375MiB +2.7% +22.5%
echo-ws-pipeline 16384 9,262,688 6014.0% 381MiB +1.6% +6.7%
echo-ws-limited 512 371,654 4937.1% 331MiB NEW NEW
echo-ws-limited 4096 352,877 5088.5% 353MiB NEW NEW
latency-1m 1024 974,116 0.9741 ⚠️ 64.71us 1289728.0us 1772032.0us 6526.6% 282MiB +1.4% -2.1%
latency-10k 1024 9,983 0.9983 320.75us 141.0us 10596.0us 307.5% 193MiB ~0% -0.5%
async 32000 976,029 6134.8% 672MiB NEW NEW
Full log
  "target_rate": 1000000,
  "target_rate_end": 1000000,
  "rate_ratio": 0.9699,
  "bytes_per_sec": 113496400.04,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 2573439,
  "latency_us": {
    "min": 73, "mean": 336587.8, "stdev": 337692.1, "max": 2576383,
    "p50": 238528, "p75": 503424, "p90": 803584, "p99": 1468928, "p99_9": 1948160, "p99_99": 2323456
  },
  "status_codes": { "1xx": 0, "2xx": 19404863, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "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"
}
[info] CPU 6178.7% | Mem 304MiB
[info] run 1 wins on score

=== Best: 974116 req/s (CPU: 6526.6%, Mem: 282MiB) ===
[info] exact CPU: 1261.05 core-seconds | 64.706 us/req
=== Fixed-rate: cpu/req 64.71us | p99 1289728.0us | p99.9 1772032.0us | rate_ratio 0.9741 ===
[warn] offered rate fell short: rate_ratio=0.9741 (target 1000000/s)
[warn]   the CPU number is not comparable with runs that held the rate
[info] saved results/latency-1m/1024/roadrunner.json
httparena-bench-roadrunner
httparena-bench-roadrunner

==============================================
=== roadrunner / latency-10k / 1024c (tool=zrk) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
{
  "zrk_version": "2.3.0",
  "target": { "url": "http://localhost:8080/baseline11?a=1&b=2", "method": "GET" },
  "config": { "connections": 1024, "launched": 1024, "duration_s": 20.000, "closed": false, "target_rate": 10000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.003,
  "requests": 199686,
  "bytes": 23363262,
  "achieved_rate": 9982.88,
  "target_rate": 10000,
  "target_rate_end": 10000,
  "rate_ratio": 0.9983,
  "bytes_per_sec": 1167997.40,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 0,
  "latency_us": {
    "min": 47, "mean": 102.9, "stdev": 585.4, "max": 26687,
    "p50": 78, "p75": 89, "p90": 103, "p99": 141, "p99_9": 10596, "p99_99": 23960
  },
  "status_codes": { "1xx": 0, "2xx": 199686, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "HISTFAAAAtt4nC1SW0hUURQ9Z51z78yd6c6dh3pNMxXTsoel9VHY0+gBQkrvsKcU+edPQRBFH1FBUIERFiImEdHjI4kIP2w+QgjCJEQsSET6qD5kMD+ir9Y5M/fOnLvP2nuvvfY+Z8n1nowQ6qvIP6rwlXbTc1Nsy+WBExAoWrbuYL98JqflE/SpGfeRPxP21w1uerDzXvvwoZFjn05/Oztx7ueZsbMLnbPnF7p6u0a6pjvnTk51TB7OtvXtG9rb23Jny2Tz6MaxpidNb1YPrpxe/rfmQ/WNyvGKW2UDi+fCt0W9xS/TueRUMBA8D7L+vD+4qD8+HsvGrnm5aDY6EZ2PZCOj7oB7zc05484//U4P6x9qRj1T99UspjGEN+jFI+Tkbyr9IoflU9knB+TVG/LCpf2d24+ePN7evntzQ8vmDQ1bG1ZULS1ZUVqXrkonS8sSsbKSZDqRSMQWJXSyKJ3Uro7Fom7MdaOuQFS44KKFq6G0hn3sTnAjXEUj/2otQEgBcQRYzlXoFCrgGAgRrrXEi2mlCimN8Gg7fItpVTBnDyMU/+VAMwNacYDOK3T9ktiFuwo9EufoOkWuxxIn8B14KPHKwR+J9wqvQcdilmjT2IRumLxGXKTVSl69Fp8lujX1VLOkQ8oIfKzBKlQSacRa5jrE6inLZ4JH32WE3PGXISAIeXghGXdbEomggxjVhjSb2XINNx8lCQWjHcIZ25EqdOzYlXRcdIiAI4vb4ay33aYsj6DAlPlaLRGYgSrqDaiyvkDsmR4Z7XHvw7M8O2jXa8dKFFTo4whqtU/clDf5PqcTMptAaEnyZRQdQsetpQpl82u8gKRYABEdsJ0MQ0PwSDw4PF9zcvmYOC0ftsEA2nTq2RGWMzdDj+EqJxqh27D7hRxzD/JzoRxlRYSaFb188z5RM0IqVmzK3JMQ2pxenJKNnlo7EYfOgISG3lwxGCfl+UaoTebWs3S8Vf8Big2Eww=="
}
[info] CPU 307.5% | Mem 193MiB

[run 2/3]
{
  "zrk_version": "2.3.0",
  "target": { "url": "http://localhost:8080/baseline11?a=1&b=2", "method": "GET" },
  "config": { "connections": 1024, "launched": 1024, "duration_s": 20.000, "closed": false, "target_rate": 10000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.002,
  "requests": 199667,
  "bytes": 23361039,
  "achieved_rate": 9982.18,
  "target_rate": 10000,
  "target_rate_end": 10000,
  "rate_ratio": 0.9982,
  "bytes_per_sec": 1167914.85,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 0,
  "latency_us": {
    "min": 49, "mean": 100.7, "stdev": 584.8, "max": 35935,
    "p50": 82, "p75": 92, "p90": 105, "p99": 143, "p99_9": 365, "p99_99": 27816
  },
  "status_codes": { "1xx": 0, "2xx": 199667, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "HISTFAAAAmF4nC1QXUsUYRSe95l3ZnZmXcddNdd0d/3aCkwyPykRoQyLjILSUklc+7KLwJt+QCUZXpS4EVsX0sUSJCQhFrFXJmJB9IGEkHQRscledLGZLd4EPTM2L2fOc573vOc555SPxQsVBUvK9qf+98IN4uNKR3abiAGevKry+sE7IiUyeKslrHTBSjBZvV6XaEofnOp8dTTXPXNyqneub6J/eehrLH1xcXj9QjI2PZQ7f3Mg0zfTkzg1f3yjK9d599CTjlTb7ZbJxlTD49pPe2aj81XJyHToQ9l8cDo4WZwLZP2PCjL2Qv6qL+Pd8matNTNhjpnfjTlj2VgzXurftFUtqT/QPstF+Vz+VFfUGTWtbmALS1jEfUzwbIqsWBObIikWxKyYEFNidHhk9Mzg5d5zQyP9TQ3de8Mt9eFdNRU14arynTuCFflFRUVhj2UFCvRAniU9AY8ekB6pW9KydB0SgJSQCnTHa4DpcqoDySowoEoVhWRseOHHdVlI1IdLuCEINJTiAE3DAG4JOg1RvBPyDXAMPsRwBX+Aq+jBR+ChU/6FwGugGhH8pZCB3xI/gKcCIdTii0o+yuKKLMMzYB/uSZxGF36peC9wFnHBEo2ULGZvPXxeQg1HsxmV2M9js9My3pXiBFEj0WHmVjKvhJzKGaK4xpcKSBDz72MZG+Mq1doZKmilRiu96Vbe7U7vpcGQGnMjJELucryMDKbZziAa/CSdDTjb88PZE2vbhE6hSidoZy+mK+ds1m3UT1phsl8avIyQC1HcoNk4wrGaySmo43LaqFfCbZhsX3UHtYn+AUaNhC8="
}
[info] CPU 385.5% | Mem 203MiB

[run 3/3]
{
  "zrk_version": "2.3.0",
  "target": { "url": "http://localhost:8080/baseline11?a=1&b=2", "method": "GET" },
  "config": { "connections": 1024, "launched": 1024, "duration_s": 20.000, "closed": false, "target_rate": 10000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.002,
  "requests": 199679,
  "bytes": 23362443,
  "achieved_rate": 9982.90,
  "target_rate": 10000,
  "target_rate_end": 10000,
  "rate_ratio": 0.9983,
  "bytes_per_sec": 1167999.47,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 0,
  "latency_us": {
    "min": 49, "mean": 94.1, "stdev": 375.2, "max": 25455,
    "p50": 82, "p75": 92, "p90": 106, "p99": 145, "p99_9": 269, "p99_99": 20776
  },
  "status_codes": { "1xx": 0, "2xx": 199679, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "HISTFAAAAml4nC1RTUhUURS+53tv3rw3M+qMz1HGsdRGMzWJ0USKxKKSzJR+SApB/Bs3EbVwF4ELmVpMEuOimqRCREioRUwkrkSIIqNikhaDVBiEuJCoiBaD9M3Yu+/ec96533fOd84rG5+0lcKy2n60/1ZyH5M3VNuP7cAAYHjy95wcnpEEMtp3R9r669sona36uXe2eaN1/Oh0R6rra3eiJ3FhrXdsID4UHX43khxZj8SG1vqSF9fOZ87OdUe73p6ItscOxw99bploehaeqp+vTVe/2TVWcXPnXPBpIFGy5U/ZW76ob9Gbyc/kpfJXPOvuTVfCPeVKWqvminnbTDk/OGec485FI20sGFOOCcdrPa5H9SXtkxbTNrGKNP7IAmK4i9+yIksyLXFJygOJSkIeyZiMjvZcPd0/2Nc/eOpYRXtd48HG/XVVVbsLS8uKigtdhUWm1zRdpvJ6dI9ZDK/hMmC6DAMwddDVFZQB3ummTssQD90NOKB0XXEBsIjiq8GJAjSgiTYIP0pQj2rcF2JbEeCVDzY68QXEPBReXmPkseAywvgmqKV5IvgoCOGOkB0kRaENvaT/EuAcbgmOZCuzVAF2cPnIyWO5ED0Nuo/oELdNkEVImEEH3gvdCN0GXrBiVmc5Xuk4w8gQmgmJkBZBC3OVUKkFd64FC8dzjOt4AbwUPBfcA+W6mStEWVgW7Mtq7cz1rYBL6CCzkznCuTw2zxqOgkX87MJGJdMFcrqC/M5KquUgbFxhvJwrSAkWMx3gWclJhmgt4gKcZAFTt9D3c9cQx9qMKLZQzrEolu5gK/w3eaQq3UFYK/4BAM2GZQ=="
}
[info] CPU 398.5% | Mem 203MiB
[info] run 1 wins on score

=== Best: 9983 req/s (CPU: 307.5%, Mem: 193MiB) ===
[info] exact CPU: 64.05 core-seconds | 320.746 us/req
=== Fixed-rate: cpu/req 320.75us | p99 141.0us | p99.9 10596.0us | rate_ratio 0.9983 ===
[info] saved results/latency-10k/1024/roadrunner.json
httparena-bench-roadrunner
httparena-bench-roadrunner

==============================================
=== roadrunner / async / 32000c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     32000 (500/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   16.89ms   12.60ms   14.80ms   18.40ms   875.20ms

  9792298 requests in 10.00s, 9760298 responses
  Throughput: 975.87K req/s
  Bandwidth:  109.82MB/s
  Status codes: 2xx=9760298, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 9760298 / 9760298 responses (100.0%)
  Latency overflow (>5s): 2902
[info] CPU 6134.8% | Mem 672MiB

[run 2/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     32000 (500/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   19.68ms   11.90ms   13.50ms   16.60ms    2.93s

  6250582 requests in 10.00s, 6218582 responses
  Throughput: 621.74K req/s
  Bandwidth:  69.97MB/s
  Status codes: 2xx=6218582, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 6218582 / 6218582 responses (100.0%)
  Latency overflow (>5s): 2513
[info] CPU 4202.0% | Mem 736MiB

[run 3/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     32000 (500/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   21.65ms   11.80ms   13.50ms   17.00ms    3.73s

  6572550 requests in 10.00s, 6540550 responses
  Throughput: 653.95K req/s
  Bandwidth:  73.59MB/s
  Status codes: 2xx=6540550, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 6540550 / 6540550 responses (100.0%)
  Latency overflow (>5s): 4113
[info] CPU 4468.4% | Mem 759MiB

=== Best: 976029 req/s (CPU: 6134.8%, Mem: 672MiB) ===
[info] input BW: 44.68MB/s (avg template: 48 bytes)
[info] saved results/async/32000/roadrunner.json
httparena-bench-roadrunner
httparena-bench-roadrunner
[info] rebuilding site/data/*.json
[purged stale] cadente.json (cadente)
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/results/roadrunner.json - 32 new, 32 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536

@williamthome

Copy link
Copy Markdown
Contributor Author

/benchmark -f roadrunner --save

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ /benchmark --save cannot start: main has diverged and cannot be auto-merged into this branch. Please merge or rebase main manually, push, and re-run /benchmark --save.

@williamthome
williamthome force-pushed the entries/roadrunner-async-and-ws-limited branch from e83922d to bdf537a Compare August 30, 2026 23:33
@williamthome

Copy link
Copy Markdown
Contributor Author

/benchmark -f roadrunner --save

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ /benchmark --save aborted: main has diverged and cannot be auto-merged into this branch. Please merge or rebase main manually, push, and re-run /benchmark --save.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: roadrunner | Test: all tests

No results captured

Full log

@williamthome
williamthome force-pushed the entries/roadrunner-async-and-ws-limited branch from bdf537a to 5550361 Compare August 31, 2026 09:35
@williamthome

Copy link
Copy Markdown
Contributor Author

/benchmark -f roadrunner --save

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: roadrunner | Test: all tests

Test Conn RPS Rate CPU/req p99 p99.9 CPU Mem Δ RPS Δ Mem
baseline 4096 953,070 6297.2% 336MiB -5.0% -0.9%
pipelined 4096 4,202,768 6180.0% 348MiB -3.5% -2.8%
limited-conn 4096 438,909 5201.6% 318MiB +4.2% -1.2%
json-comp 4096 100,185 6250.1% 801MiB -0.6% -9.5%
json-comp 16384 104,142 6104.1% 909MiB +2.6% +0.1%
json-tls 4096 167,975 6388.5% 1005MiB +6.1% +27.5%
8gbit 512 48,435 0.9687 ⚠️ 387.56us 1683.0us 8732.0us 1744.5% 497MiB ~0% -2.7%
static-tls 1024 86,931 5493.9% 653MiB +0.7% -2.2%
async-db 1024 124,187 6393.2% 817MiB -2.8% -2.5%
fortunes 1024 62,959 6328.2% 1010MiB -0.9% +1.0%
baseline-h2 256 452,063 6478.7% 348MiB +0.3% -13.6%
baseline-h2 1024 454,814 6385.8% 456MiB -0.9% -4.4%
static-h2 256 84,766 5763.5% 440MiB -4.0% -0.9%
static-h2 1024 79,614 5757.8% 935MiB ~0% +0.2%
baseline-h2c 256 749,263 6568.4% 257MiB +1.4% +0.8%
baseline-h2c 1024 721,381 6590.2% 285MiB -1.6% -1.7%
baseline-h2c 4096 629,475 6374.5% 405MiB ~0% -12.5%
json-h2c 1024 100,115 3962.7% 931MiB -4.5% -5.2%
json-h2c 4096 102,855 3890.3% 1.7GiB +4.4% -22.7%
baseline-h3 64 101,529 5651.0% 438MiB -8.9% -2.7%
static-h3 64 14,512 5204.2% 773MiB +10.1% +16.8%
echo-ws 512 578,448 5399.8% 216MiB -11.5% -1.4%
echo-ws 4096 1,558,054 6515.5% 360MiB +1.8% -2.4%
echo-ws 16384 1,473,657 6266.2% 364MiB +27.6% -44.4%
echo-ws-pipeline 512 9,828,726 6589.4% 228MiB +2.6% -10.9%
echo-ws-pipeline 4096 9,181,635 6482.6% 363MiB ~0% +18.6%
echo-ws-pipeline 16384 9,202,502 6240.1% 430MiB +1.0% +20.4%
echo-ws-limited 512 354,060 5267.7% 349MiB NEW NEW
echo-ws-limited 4096 362,282 5072.2% 344MiB NEW NEW
latency-1m 1024 957,441 0.9574 ⚠️ 66.18us 1851904.0us 2472960.0us 6507.0% 270MiB -0.4% -6.2%
latency-10k 1024 9,982 0.9982 316.92us 136.0us 10628.0us 304.3% 200MiB ~0% +3.1%
async 32000 972,097 6088.6% 651MiB NEW NEW
Full log
  "achieved_rate": 957441.04,
  "target_rate": 1000000,
  "target_rate_end": 1000000,
  "rate_ratio": 0.9574,
  "bytes_per_sec": 112038342.73,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 3007642,
  "latency_us": {
    "min": 69, "mean": 429810.1, "stdev": 432025.9, "max": 3010559,
    "p50": 301952, "p75": 643840, "p90": 1026816, "p99": 1851904, "p99_9": 2472960, "p99_99": 2829312
  },
  "status_codes": { "1xx": 0, "2xx": 19155677, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "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"
}
[info] CPU 6507.0% | Mem 270MiB
[info] run 3 wins on score

=== Best: 957441 req/s (CPU: 6507.0%, Mem: 270MiB) ===
[info] exact CPU: 1267.68 core-seconds | 66.178 us/req
=== Fixed-rate: cpu/req 66.18us | p99 1851904.0us | p99.9 2472960.0us | rate_ratio 0.9574 ===
[warn] offered rate fell short: rate_ratio=0.9574 (target 1000000/s)
[warn]   the CPU number is not comparable with runs that held the rate
[info] saved results/latency-1m/1024/roadrunner.json
httparena-bench-roadrunner
httparena-bench-roadrunner

==============================================
=== roadrunner / latency-10k / 1024c (tool=zrk) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
{
  "zrk_version": "2.3.0",
  "target": { "url": "http://localhost:8080/baseline11?a=1&b=2", "method": "GET" },
  "config": { "connections": 1024, "launched": 1024, "duration_s": 20.000, "closed": false, "target_rate": 10000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.003,
  "requests": 199667,
  "bytes": 23361039,
  "achieved_rate": 9981.87,
  "target_rate": 10000,
  "target_rate_end": 10000,
  "rate_ratio": 0.9982,
  "bytes_per_sec": 1167878.80,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 0,
  "latency_us": {
    "min": 47, "mean": 106.9, "stdev": 759.4, "max": 41247,
    "p50": 78, "p75": 88, "p90": 101, "p99": 136, "p99_9": 10628, "p99_99": 32712
  },
  "status_codes": { "1xx": 0, "2xx": 199667, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "HISTFAAAAtJ4nC1SXUhUURC+57vn7u7du+7dZf3ZxU3ZbKvFnwrNkrClPzEwtDIkRMy0oEAosJ61TCX6MbXoLQILEbMeIiLCtIcQC/FBogcfTMKXRCR6CInoO0f33jN3zsw3M9/MbLx7MGIY5ktj42dufoW+DPYa6bUNQxOC/vjOmraOx2JNrGLFGg38ji4nF8tW0ivV07XzDRON801vm++cn29ZaP10YeTiZNtQ6+3mr41LZ//V/zj1q2665kbVo2M96fGDa+WzZeu7Z4q7i9aTr5J/tw4kBvKG43Oxt9Gl7Mmsyci3cHfoefB98E9g1RkPdDrT9pi9aK96P/qWPCPeNeudtWANWD3WnLwnv8gxc9TsM5cxizfoRx+G0IkJMSPmxGvRL4bF9SsddZfP1R+tPlxdXlVSVFayP29bZjQvvj3kyw5GM/2hUCAY8AX9AY8MwG/4PVL6PT74QSE9EuBrqNeAlyqklMoEi8dW0qSw1N1UOBcxOipwiF8H2IKrCKMSB1CIB8BTgXxk0OJiL7w4iSwkcAQRdHlwV6AYHwQa8RP4LBjvJTSXAU0MHhRoQQOv14BLKGX4MyHb0Ypd2IEpQWQFy5cihzRswk6QQT6mgDPM7uC7wH1B7TheCDwUBCuQzTSVSPPWrtrjySe3DDaq2iU8wVCHZNtZNsWAWrpxU9BiIixVIwa1GM8tASZgSIRGizlcaVOnW7LJJMgyRUAhoS5ZOMiRqnuTmApOYB95qpoOI2NqmC7BjiaVIoscxd4k3iLj0zRhD3hjcIysGGMCjvTSXSApHE3LVCmkJVUS1Y7elKEXpzSWULgMylqeMHsv4ESYCZxjMbrUUDO4QeWxNVZzcnU5NsDH0EO0dF5Xc1FlqVg0uzperdDLLGQvUzqfyzqKRkQzzGUqm49uP0Yn+8llaltPx9AyITnAMJ8s/a+yNpcVlhvjl7pTUlYL6xV4IvAfnZCG4A=="
}
[info] CPU 304.3% | Mem 200MiB

[run 2/3]
{
  "zrk_version": "2.3.0",
  "target": { "url": "http://localhost:8080/baseline11?a=1&b=2", "method": "GET" },
  "config": { "connections": 1024, "launched": 1024, "duration_s": 20.000, "closed": false, "target_rate": 10000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.002,
  "requests": 199622,
  "bytes": 23355774,
  "achieved_rate": 9980.01,
  "target_rate": 10000,
  "target_rate_end": 10000,
  "rate_ratio": 0.9980,
  "bytes_per_sec": 1167660.68,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 0,
  "latency_us": {
    "min": 51, "mean": 102.6, "stdev": 675.9, "max": 46655,
    "p50": 84, "p75": 94, "p90": 106, "p99": 142, "p99_9": 241, "p99_99": 35536
  },
  "status_codes": { "1xx": 0, "2xx": 199622, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "HISTFAAAAk94nC1PXUiTURj+3uc72/fNn2/OzS1TGpLTrCRLS/sRo4xCUzQdWak34YVYdBEWdCFYUkIlkhAh1UWsiJCQXZlREXihZiOGQYiBF2VmEgZRMkR6Njtwnvc97/NzzsnuGXBrGh5r60v/XyVxGLihVSyvD9rs6du3HG++8lqm8VvdM8PWqveTv6dgtOhZ6Z0DoYqeytWj0aqnNcMNo8FY0/iZtZb55pGWoda5pqlToeD9xsH6aF1fTaTq0bH+yujBpfKxfT9Llotv7RgsnNwazlvInc154p/LXsuc8q1kLLi/pMfSJp3jVih1JXkhecTR55g2x4wPRsS4aty1z9jCtkU1qsJqVu9VEX1Gj2Eei3iI5+hHTP7ImixJVCIyJMNyXfqkq1cunes6XddY11p74lDtnrKiXSVFZZtKvLkej3ej3ePJ25DisVJMy6usNNMyTUslAUkqBSYIsLMoTSllajAV2EJTGgjQFQzwiPiywQeb0knADxfRRXJC2JzFG4VuQScuwkHdBPBR8FkQxHfBV0G3TssrHe14IKhGPZPaVSc64okM8SOZeJ59EH+F470U/ZC4uBileCvIx0k4cQQt7DKILnVNcFtwGTnYT0kh2W/Ch7ThvaAGL4WhWjzgl4EXEo+4KfTpvCOVVID32Zjno1OHm9IAczP5uw7W3eSqmdiGw8wvRiay6HGigdoLoMkNGMrFkwPYTDqfdi0RncXNeQ6ZAHainGhDQeKXLk63saaS9zEt/hY2DigfeGmAnSNBaUSdAifo8dFTgXfAP58fiwk="
}
[info] CPU 409.6% | Mem 211MiB

[run 3/3]
{
  "zrk_version": "2.3.0",
  "target": { "url": "http://localhost:8080/baseline11?a=1&b=2", "method": "GET" },
  "config": { "connections": 1024, "launched": 1024, "duration_s": 20.000, "closed": false, "target_rate": 10000, "timeout_ms": 2000, "deadline_ms": 0, "deadline_abort": false, "record_timeouts": true },
  "duration_s": 20.002,
  "requests": 199659,
  "bytes": 23360103,
  "achieved_rate": 9981.78,
  "target_rate": 10000,
  "target_rate_end": 10000,
  "rate_ratio": 0.9982,
  "bytes_per_sec": 1167868.16,
  "error_rate": 0.000000,
  "max_schedule_lag_us": 0,
  "latency_us": {
    "min": 49, "mean": 107.6, "stdev": 654.7, "max": 36895,
    "p50": 86, "p75": 97, "p90": 111, "p99": 160, "p99_9": 2817, "p99_99": 31288
  },
  "status_codes": { "1xx": 0, "2xx": 199659, "3xx": 0, "4xx": 0, "5xx": 0 },
  "errors": { "connect": 0, "read": 0, "write": 0, "timeout": 0, "deadline": 0, "non_2xx_3xx": 0 },
  "latency_histogram": "HISTFAAAAsV4nC1RW0hUURS9Z91z79yZUcdx1NHxkWXjA1+YaQ9NKS0UKdOSfJRl0Vf0/EiiIAMhK7JIESERkggJgwgJCZGQEhIJEaOhQKqPIBGJQUj6kNa5dg7n7HP33mvtdfdO7ur1aZp+SttY+n8r7I/e21rF7w1HuwUtOi235EDbsBhAn5w277rXPV/i+1M7gyvZSwXTxeO7V0un9s1UvapZqx6sW2vobBxuft000fqwaawxdGzo6GJDqH7l8Pqhrtq3NT8rJyuXK0Jl3SWjRQuFE/kfc55njgXDW8bSQikvAyv+tfie2J7YsLc7esAzH7UYOR4x61p1hZwjzkfON1a3NefotMLmX2PQ7DMnjSXZZYwYc3JCruiDclmf00f1ML6hR5/FFPoxhKfoof0h5sUczzOxIGbFOzEjJsSouHGp7crV0xeOt7S0NFWXt5VX7Swryy/JLdm3PWvb1qzcQEZ8akZqaiA5LRCTkBBIcMUkW9EuK4CI5ChpRphRrghpwWW5uKTlMjUJ07QguXQYkBq3bup8QAMc8HDTbwCb1SedDh6PjEQebRK9OoK0TuxAPc7TljJZ506HF5XM8RNxEnE2icG4lzEvfSnwIRLZaCQaxUjEWQZqCHgscBkfBD4JNOOebX8Jpt7R8UDgHF4ItOMPcEvgPnCd5E46fKT5rqOIilSFVlIWsWociRMJNmyFOupoM6kpjlnFtsYkajmDQmZ/FQyk4CCeCOpqx2eB90CFEuSwKRIZ96GWkD3gtQsdOAE3gx0ooOYC/jvz9rOQapOXdx6yZR3fQb48djHD9jvso0pTt8yRXspKpCh2OJ2X6pJyuXETR8i8l2A1kKA9JJ2pbkbTpZLrJsKjgJHchWpIBklTNoa3ibefNkmNsVWNUSOYyX7yU4pUM9FshE/FrqmpF7MFbturOmm3Lt0eugI4cZFc/wAe05Xr"
}
[info] CPU 417.5% | Mem 210MiB
[info] run 1 wins on score

=== Best: 9982 req/s (CPU: 304.3%, Mem: 200MiB) ===
[info] exact CPU: 63.28 core-seconds | 316.921 us/req
=== Fixed-rate: cpu/req 316.92us | p99 136.0us | p99.9 10628.0us | rate_ratio 0.9982 ===
[info] saved results/latency-10k/1024/roadrunner.json
httparena-bench-roadrunner
httparena-bench-roadrunner

==============================================
=== roadrunner / async / 32000c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     32000 (500/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   17.03ms   12.70ms   15.00ms   19.00ms   906.10ms

  9752971 requests in 10.00s, 9720971 responses
  Throughput: 971.93K req/s
  Bandwidth:  109.38MB/s
  Status codes: 2xx=9720971, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 9720971 / 9720971 responses (100.0%)
  Latency overflow (>5s): 2920
[info] CPU 6088.6% | Mem 651MiB

[run 2/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     32000 (500/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   18.62ms   11.70ms   13.30ms   16.70ms    2.35s

  6247246 requests in 10.00s, 6215246 responses
  Throughput: 621.38K req/s
  Bandwidth:  69.93MB/s
  Status codes: 2xx=6215246, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 6215246 / 6215246 responses (100.0%)
  Latency overflow (>5s): 2388
[info] CPU 4141.4% | Mem 776MiB

[run 3/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     32000 (500/thread)
  Pipeline:  1
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   18.97ms   12.00ms   13.70ms   16.80ms    2.49s

  7788501 requests in 10.00s, 7756501 responses
  Throughput: 775.52K req/s
  Bandwidth:  87.27MB/s
  Status codes: 2xx=7756501, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 7756501 / 7756501 responses (100.0%)
  Latency overflow (>5s): 3239
[info] CPU 5258.3% | Mem 779MiB

=== Best: 972097 req/s (CPU: 6088.6%, Mem: 651MiB) ===
[info] input BW: 44.50MB/s (avg template: 48 bytes)
[info] saved results/async/32000/roadrunner.json
httparena-bench-roadrunner
httparena-bench-roadrunner
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/results/roadrunner.json - 32 new, 32 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant