Skip to content

[roda] Update puma to 8.0#666

Open
p8 wants to merge 2 commits intoMDA2AV:mainfrom
p8:roda/puma-8
Open

[roda] Update puma to 8.0#666
p8 wants to merge 2 commits intoMDA2AV:mainfrom
p8:roda/puma-8

Conversation

@p8
Copy link
Copy Markdown
Contributor

@p8 p8 commented Apr 27, 2026

No description provided.

@p8
Copy link
Copy Markdown
Contributor Author

p8 commented Apr 27, 2026

/benchmark -f roda

@github-actions
Copy link
Copy Markdown
Contributor

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

@p8
Copy link
Copy Markdown
Contributor Author

p8 commented Apr 28, 2026

/benchmark -f roda —save

@MDA2AV
Copy link
Copy Markdown
Owner

MDA2AV commented Apr 28, 2026

/benchmark -f roda --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.

@p8
Copy link
Copy Markdown
Contributor Author

p8 commented Apr 29, 2026

/benchmark -f roda --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: roda | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 75,252 4506.6% 7.1GiB +0.1% ~0%
baseline 4096 37,996 3896.3% 5.4GiB +1.4% -10.0%
pipelined 512 583,729 6455.6% 1.7GiB -12.0% -10.5%
pipelined 4096 562,005 6432.4% 2.1GiB -14.3% ~0%
limited-conn 512 28,537 3693.9% 4.9GiB -5.8% -7.5%
limited-conn 4096 28,977 3489.3% 5.1GiB -1.0% -3.8%
json 4096 231,255 6362.4% 4.3GiB -9.0% -21.8%
json-comp 512 128,684 6473.1% 4.0GiB -2.9% -2.4%
json-comp 4096 131,000 6500.5% 3.6GiB -2.2% -10.0%
json-comp 16384 130,762 6515.4% 4.1GiB -1.8% +5.1%
json-tls 4096 205,209 6514.8% 5.1GiB -8.0% -1.9%
upload 32 965 3102.4% 8.3GiB -0.4% -3.5%
upload 256 895 6517.6% 6.9GiB +3.9% -19.8%
api-4 256 18,551 396.5% 489MiB -1.3% +28.3%
api-16 1024 46,029 1676.7% 1.5GiB -5.7% +7.1%
static 1024 142,223 6539.9% 6.3GiB -43.4% -13.7%
static 4096 140,111 6528.3% 6.7GiB -42.4% -14.1%
static 6800 138,172 6484.5% 7.1GiB -42.7% -4.1%
async-db 1024 108,099 6396.5% 2.5GiB -8.6% -7.4%
Full log
[info] CPU 6480.3% | Mem 6.2GiB

[run 2/3]
Running 5s test @ http://localhost:8080
  64 threads and 4096 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    28.06ms    9.49ms 265.17ms   80.98%
    Req/Sec     2.21k   539.05    11.76k    85.42%
  715149 requests in 5.10s, 10.95GB read
Requests/sec: 140111.31
Transfer/sec:      2.14GB
[info] CPU 6528.3% | Mem 6.7GiB

[run 3/3]
Running 5s test @ http://localhost:8080
  64 threads and 4096 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    28.52ms    9.38ms 246.71ms   81.81%
    Req/Sec     2.18k   500.52    13.10k    90.33%
  705305 requests in 5.11s, 10.80GB read
Requests/sec: 138045.70
Transfer/sec:      2.11GB
[info] CPU 6481.6% | Mem 7.3GiB

=== Best: 140111 req/s (CPU: 6528.3%, Mem: 6.7GiB) ===
[info] saved results/static/4096/roda.json
httparena-bench-roda
httparena-bench-roda

==============================================
=== roda / static / 6800c (tool=wrk) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
Running 5s test @ http://localhost:8080
  64 threads and 6800 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    53.71ms   67.29ms   1.01s    96.75%
    Req/Sec     2.05k     0.93k    5.41k    77.43%
  657430 requests in 5.10s, 10.06GB read
Requests/sec: 128898.79
Transfer/sec:      1.97GB
[info] CPU 6454.8% | Mem 6.2GiB

[run 2/3]
Running 5s test @ http://localhost:8080
  64 threads and 6800 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    48.31ms   31.01ms 586.61ms   95.30%
    Req/Sec     2.12k   715.12    10.81k    79.89%
  687439 requests in 5.11s, 10.52GB read
Requests/sec: 134639.77
Transfer/sec:      2.06GB
[info] CPU 6527.8% | Mem 6.4GiB

[run 3/3]
Running 5s test @ http://localhost:8080
  64 threads and 6800 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    47.25ms   33.43ms 560.66ms   96.77%
    Req/Sec     2.17k   782.84    14.18k    79.92%
  704737 requests in 5.10s, 10.79GB read
Requests/sec: 138172.08
Transfer/sec:      2.11GB
[info] CPU 6484.5% | Mem 7.1GiB

=== Best: 138172 req/s (CPU: 6484.5%, Mem: 7.1GiB) ===
[info] saved results/static/6800/roda.json
httparena-bench-roda
httparena-bench-roda

==============================================
=== roda / async-db / 1024c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     1024 (16/thread)
  Pipeline:  1
  Req/conn:  25
  Templates: 5
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   8.90ms   8.50ms   14.80ms   22.40ms   94.60ms

  1075744 requests in 10.00s, 1075745 responses
  Throughput: 107.55K req/s
  Bandwidth:  436.21MB/s
  Status codes: 2xx=1075745, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 1075743 / 1075745 responses (100.0%)
  Reconnects: 42540
  Per-template: 214344,215381,216062,215510,214446
  Per-template-ok: 214344,215381,216062,215510,214446
[info] CPU 6100.1% | Mem 2.4GiB

[run 2/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     1024 (16/thread)
  Pipeline:  1
  Req/conn:  25
  Templates: 5
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   8.95ms   8.71ms   15.30ms   21.70ms   31.60ms

  1065543 requests in 10.00s, 1065543 responses
  Throughput: 106.53K req/s
  Bandwidth:  431.84MB/s
  Status codes: 2xx=1065543, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 1065539 / 1065543 responses (100.0%)
  Reconnects: 42371
  Per-template: 212515,213498,214066,213193,212267
  Per-template-ok: 212515,213498,214066,213193,212267
[info] CPU 6337.8% | Mem 2.3GiB

[run 3/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     1024 (16/thread)
  Pipeline:  1
  Req/conn:  25
  Templates: 5
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   8.74ms   8.31ms   15.10ms   21.40ms   32.50ms

  1080987 requests in 10.00s, 1080991 responses
  Throughput: 108.07K req/s
  Bandwidth:  438.57MB/s
  Status codes: 2xx=1080991, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 1080988 / 1080991 responses (100.0%)
  Reconnects: 43021
  Per-template: 215696,215991,216625,216809,215867
  Per-template-ok: 215696,215991,216625,216809,215867
[info] CPU 6396.5% | Mem 2.5GiB

=== Best: 108099 req/s (CPU: 6396.5%, Mem: 2.5GiB) ===
[info] input BW: 7.22MB/s (avg template: 70 bytes)
[info] saved results/async-db/1024/roda.json
httparena-bench-roda
httparena-bench-roda
[info] skip: roda does not subscribe to crud
[info] skip: roda does not subscribe to baseline-h2
[info] skip: roda does not subscribe to static-h2
[info] skip: roda does not subscribe to baseline-h2c
[info] skip: roda does not subscribe to json-h2c
[info] skip: roda does not subscribe to baseline-h3
[info] skip: roda does not subscribe to static-h3
[info] skip: roda does not subscribe to gateway-64
[info] skip: roda does not subscribe to gateway-h3
[info] skip: roda does not subscribe to production-stack
[info] skip: roda does not subscribe to unary-grpc
[info] skip: roda does not subscribe to unary-grpc-tls
[info] skip: roda does not subscribe to stream-grpc
[info] skip: roda does not subscribe to stream-grpc-tls
[info] skip: roda does not subscribe to echo-ws
[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/api-16-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/api-4-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/async-db-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-16384.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-tls-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/limited-conn-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/limited-conn-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/pipelined-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/pipelined-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-6800.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/upload-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/upload-32.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536
[info] restoring CPU governor → powersave

@p8
Copy link
Copy Markdown
Contributor Author

p8 commented Apr 29, 2026

Argh, that contained a commit I did't want yet.

@p8
Copy link
Copy Markdown
Contributor Author

p8 commented Apr 29, 2026

/benchmark -f roda --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: roda | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 75,819 4604.8% 7.1GiB +0.9% ~0%
baseline 4096 37,551 4009.0% 5.5GiB +0.2% -8.3%
pipelined 512 577,534 6433.4% 1.7GiB -12.9% -10.5%
pipelined 4096 559,672 6371.1% 2.0GiB -14.6% -4.8%
limited-conn 512 28,681 3696.3% 5.1GiB -5.3% -3.8%
limited-conn 4096 28,780 3450.1% 5.0GiB -1.7% -5.7%
json 4096 232,312 6348.8% 4.3GiB -8.6% -21.8%
json-comp 512 127,242 6499.9% 3.6GiB -4.0% -12.2%
json-comp 4096 131,048 6437.7% 3.9GiB -2.2% -2.5%
json-comp 16384 131,289 6524.6% 4.2GiB -1.4% +7.7%
json-tls 4096 208,084 6512.5% 5.3GiB -6.7% +1.9%
upload 32 969 3060.8% 8.2GiB ~0% -4.7%
upload 256 910 6362.7% 8.4GiB +5.7% -2.3%
api-4 256 18,688 396.1% 489MiB -0.6% +28.3%
api-16 1024 46,703 1644.9% 1.3GiB -4.4% -7.1%
static 1024 137,333 6506.3% 6.1GiB -45.4% -16.4%
static 4096 143,275 6512.9% 7.4GiB -41.1% -5.1%
static 6800 135,872 6470.6% 7.0GiB -43.6% -5.4%
async-db 1024 108,523 6154.1% 2.4GiB -8.2% -11.1%
Full log
[info] CPU 6505.4% | Mem 6.2GiB

[run 2/3]
Running 5s test @ http://localhost:8080
  64 threads and 4096 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    28.58ms    8.92ms 254.51ms   79.43%
    Req/Sec     2.18k   425.35     7.71k    90.49%
  708488 requests in 5.11s, 10.85GB read
Requests/sec: 138613.61
Transfer/sec:      2.12GB
[info] CPU 6536.1% | Mem 6.7GiB

[run 3/3]
Running 5s test @ http://localhost:8080
  64 threads and 4096 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    27.31ms    8.11ms 243.34ms   77.27%
    Req/Sec     2.25k   553.52    13.45k    87.17%
  730714 requests in 5.10s, 11.19GB read
Requests/sec: 143275.46
Transfer/sec:      2.19GB
[info] CPU 6512.9% | Mem 7.4GiB

=== Best: 143275 req/s (CPU: 6512.9%, Mem: 7.4GiB) ===
[info] saved results/static/4096/roda.json
httparena-bench-roda
httparena-bench-roda

==============================================
=== roda / static / 6800c (tool=wrk) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
Running 5s test @ http://localhost:8080
  64 threads and 6800 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    48.92ms   36.50ms 596.20ms   96.05%
    Req/Sec     2.04k     0.88k    5.24k    78.80%
  653431 requests in 5.10s, 10.00GB read
Requests/sec: 128042.71
Transfer/sec:      1.96GB
[info] CPU 6459.1% | Mem 6.1GiB

[run 2/3]
Running 5s test @ http://localhost:8080
  64 threads and 6800 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    47.11ms   19.56ms 365.11ms   85.98%
    Req/Sec     2.11k   666.30     8.18k    81.28%
  683859 requests in 5.11s, 10.47GB read
Requests/sec: 133929.81
Transfer/sec:      2.05GB
[info] CPU 6527.7% | Mem 6.4GiB

[run 3/3]
Running 5s test @ http://localhost:8080
  64 threads and 6800 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    46.09ms   19.15ms 366.87ms   86.20%
    Req/Sec     2.14k   698.70     9.38k    80.96%
  693356 requests in 5.10s, 10.61GB read
Requests/sec: 135872.39
Transfer/sec:      2.08GB
[info] CPU 6470.6% | Mem 7.0GiB

=== Best: 135872 req/s (CPU: 6470.6%, Mem: 7.0GiB) ===
[info] saved results/static/6800/roda.json
httparena-bench-roda
httparena-bench-roda

==============================================
=== roda / async-db / 1024c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     1024 (16/thread)
  Pipeline:  1
  Req/conn:  25
  Templates: 5
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   8.84ms   8.57ms   14.50ms   21.80ms   89.40ms

  1085234 requests in 10.00s, 1085236 responses
  Throughput: 108.50K req/s
  Bandwidth:  440.11MB/s
  Status codes: 2xx=1085236, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 1085235 / 1085236 responses (100.0%)
  Reconnects: 42940
  Per-template: 216594,217277,217291,217443,216630
  Per-template-ok: 216594,217277,217291,217443,216630
[info] CPU 6154.1% | Mem 2.4GiB

[run 2/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     1024 (16/thread)
  Pipeline:  1
  Req/conn:  25
  Templates: 5
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   8.86ms   8.66ms   14.90ms   20.80ms   29.80ms

  1073822 requests in 10.00s, 1073824 responses
  Throughput: 107.36K req/s
  Bandwidth:  435.55MB/s
  Status codes: 2xx=1073824, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 1073823 / 1073824 responses (100.0%)
  Reconnects: 42699
  Per-template: 214142,214722,215530,215097,214332
  Per-template-ok: 214142,214722,215530,215097,214332
[info] CPU 6381.4% | Mem 2.3GiB

[run 3/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     1024 (16/thread)
  Pipeline:  1
  Req/conn:  25
  Templates: 5
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   8.88ms   8.65ms   15.10ms   22.00ms   34.20ms

  1072888 requests in 10.00s, 1072889 responses
  Throughput: 107.26K req/s
  Bandwidth:  435.04MB/s
  Status codes: 2xx=1072889, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 1072888 / 1072889 responses (100.0%)
  Reconnects: 42695
  Per-template: 214357,214472,215132,214774,214153
  Per-template-ok: 214357,214472,215132,214774,214153
[info] CPU 6344.6% | Mem 2.5GiB

=== Best: 108523 req/s (CPU: 6154.1%, Mem: 2.4GiB) ===
[info] input BW: 7.24MB/s (avg template: 70 bytes)
[info] saved results/async-db/1024/roda.json
httparena-bench-roda
httparena-bench-roda
[info] skip: roda does not subscribe to crud
[info] skip: roda does not subscribe to baseline-h2
[info] skip: roda does not subscribe to static-h2
[info] skip: roda does not subscribe to baseline-h2c
[info] skip: roda does not subscribe to json-h2c
[info] skip: roda does not subscribe to baseline-h3
[info] skip: roda does not subscribe to static-h3
[info] skip: roda does not subscribe to gateway-64
[info] skip: roda does not subscribe to gateway-h3
[info] skip: roda does not subscribe to production-stack
[info] skip: roda does not subscribe to unary-grpc
[info] skip: roda does not subscribe to unary-grpc-tls
[info] skip: roda does not subscribe to stream-grpc
[info] skip: roda does not subscribe to stream-grpc-tls
[info] skip: roda does not subscribe to echo-ws
[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/api-16-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/api-4-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/async-db-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-16384.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-comp-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-tls-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/limited-conn-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/limited-conn-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/pipelined-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/pipelined-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-6800.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/upload-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/upload-32.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536
[info] restoring CPU governor → powersave

@p8
Copy link
Copy Markdown
Contributor Author

p8 commented Apr 29, 2026

Not sure about the regressions in the static calls, but it is what is is.

@MDA2AV
Copy link
Copy Markdown
Owner

MDA2AV commented Apr 29, 2026

There is no regression in static, seems that all frameworks are having regression on this test. Kernel version was updated, need to investigate this.

Edit: Not all frameworks, just some which is interesting

@p8
Copy link
Copy Markdown
Contributor Author

p8 commented Apr 29, 2026

Ah, that is interesting.

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.

2 participants