Skip to content

[rack-iodine] Reduce threads#733

Open
p8 wants to merge 2 commits into
MDA2AV:mainfrom
p8:rack-iodine/reduce-threads
Open

[rack-iodine] Reduce threads#733
p8 wants to merge 2 commits into
MDA2AV:mainfrom
p8:rack-iodine/reduce-threads

Conversation

@p8
Copy link
Copy Markdown
Contributor

@p8 p8 commented May 18, 2026

More threads seem to cause issues.

@p8
Copy link
Copy Markdown
Contributor Author

p8 commented May 19, 2026

/benchmark -f rack-iodine --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 p8 force-pushed the rack-iodine/reduce-threads branch 2 times, most recently from 8522c75 to e5e9224 Compare May 22, 2026 06:43
@p8
Copy link
Copy Markdown
Contributor Author

p8 commented May 22, 2026

/benchmark -f rack-iodine --save

@github-actions
Copy link
Copy Markdown
Contributor

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

@MDA2AV
Copy link
Copy Markdown
Owner

MDA2AV commented May 25, 2026

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

More threads seem to cause issues.
@p8 p8 force-pushed the rack-iodine/reduce-threads branch from e5e9224 to 7814fee Compare May 25, 2026 12:47
@p8
Copy link
Copy Markdown
Contributor Author

p8 commented May 25, 2026

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

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 717,216 5397.0% 4.8GiB -17.7% -15.8%
baseline 4096 65,019 4750.0% 5.1GiB -15.4% -25.0%
pipelined 512 2,012,637 6587.4% 4.4GiB +1003.4% +109.5%
pipelined 4096 1,976,042 6574.9% 4.6GiB -16.8% -9.8%
limited-conn 512 59,864 4821.0% 5.1GiB +0.9% -10.5%
limited-conn 4096 59,214 4710.9% 5.2GiB +3.3% -11.9%
Full log
  Conns:     512 (8/thread)
  Pipeline:  1
  Req/conn:  10
  Templates: 3
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   8.56ms   2.69ms   32.60ms   79.90ms   204.80ms

  299580 requests in 5.00s, 299323 responses
  Throughput: 59.84K req/s
  Bandwidth:  7.02MB/s
  Status codes: 2xx=299323, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 299323 / 299323 responses (100.0%)
  Reconnects: 29706
  Per-template: 99544,100058,99721
  Per-template-ok: 99544,100058,99721
[info] CPU 4821.0% | Mem 5.1GiB

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   8.63ms   2.88ms   34.10ms   70.30ms   100.20ms

  295194 requests in 5.00s, 294868 responses
  Throughput: 58.95K req/s
  Bandwidth:  6.92MB/s
  Status codes: 2xx=294868, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 294867 / 294868 responses (100.0%)
  Reconnects: 29353
  Per-template: 98267,98441,98159
  Per-template-ok: 98267,98441,98159
[info] CPU 4736.5% | Mem 5.2GiB

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   8.70ms   2.90ms   34.20ms   68.80ms   102.40ms

  292513 requests in 5.00s, 292203 responses
  Throughput: 58.42K req/s
  Bandwidth:  6.85MB/s
  Status codes: 2xx=292203, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 292203 / 292203 responses (100.0%)
  Reconnects: 29084
  Per-template: 97465,97353,97385
  Per-template-ok: 97465,97353,97385
[info] CPU 4694.9% | Mem 5.5GiB

=== Best: 59864 req/s (CPU: 4821.0%, Mem: 5.1GiB) ===
[info] input BW: 4.62MB/s (avg template: 81 bytes)
[info] saved results/limited-conn/512/rack-iodine.json
httparena-bench-rack-iodine
httparena-bench-rack-iodine

==============================================
=== rack-iodine / limited-conn / 4096c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   66.81ms   52.80ms   142.70ms   256.90ms   383.00ms

  299975 requests in 5.00s, 296073 responses
  Throughput: 59.19K req/s
  Bandwidth:  6.94MB/s
  Status codes: 2xx=296073, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 296073 / 296073 responses (100.0%)
  Reconnects: 27794
  Per-template: 98491,99095,98487
  Per-template-ok: 98491,99095,98487
[info] CPU 4710.9% | Mem 5.2GiB

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   69.98ms   57.60ms   142.80ms   241.20ms   324.10ms

  279971 requests in 5.00s, 275892 responses
  Throughput: 55.16K req/s
  Bandwidth:  6.47MB/s
  Status codes: 2xx=275892, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 275892 / 275892 responses (100.0%)
  Reconnects: 25775
  Per-template: 91940,92356,91596
  Per-template-ok: 91940,92356,91596
[info] CPU 4446.9% | Mem 5.3GiB

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   68.88ms   54.20ms   147.60ms   264.90ms   370.50ms

  285728 requests in 5.00s, 281740 responses
  Throughput: 56.33K req/s
  Bandwidth:  6.61MB/s
  Status codes: 2xx=281740, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 281740 / 281740 responses (100.0%)
  Reconnects: 26419
  Per-template: 93796,94173,93771
  Per-template-ok: 93796,94173,93771
[info] CPU 4659.9% | Mem 5.6GiB

=== Best: 59214 req/s (CPU: 4710.9%, Mem: 5.2GiB) ===
[info] input BW: 4.57MB/s (avg template: 81 bytes)
[info] saved results/limited-conn/4096/rack-iodine.json
httparena-bench-rack-iodine
httparena-bench-rack-iodine
[info] skip: rack-iodine does not subscribe to json
[info] skip: rack-iodine does not subscribe to json-comp
[info] skip: rack-iodine does not subscribe to json-tls
[info] skip: rack-iodine does not subscribe to upload
[info] skip: rack-iodine does not subscribe to api-4
[info] skip: rack-iodine does not subscribe to api-16
[info] skip: rack-iodine does not subscribe to static
[info] skip: rack-iodine does not subscribe to async-db
[info] skip: rack-iodine does not subscribe to crud
[info] skip: rack-iodine does not subscribe to fortunes
[info] skip: rack-iodine does not subscribe to baseline-h2
[info] skip: rack-iodine does not subscribe to static-h2
[info] skip: rack-iodine does not subscribe to baseline-h2c
[info] skip: rack-iodine does not subscribe to json-h2c
[info] skip: rack-iodine does not subscribe to baseline-h3
[info] skip: rack-iodine does not subscribe to static-h3
[info] skip: rack-iodine does not subscribe to gateway-64
[info] skip: rack-iodine does not subscribe to gateway-h3
[info] skip: rack-iodine does not subscribe to production-stack
[info] skip: rack-iodine does not subscribe to unary-grpc
[info] skip: rack-iodine does not subscribe to unary-grpc-tls
[info] skip: rack-iodine does not subscribe to stream-grpc
[info] skip: rack-iodine does not subscribe to stream-grpc-tls
[info] skip: rack-iodine does not subscribe to echo-ws
[info] skip: rack-iodine does not subscribe to echo-ws-pipeline
[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/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/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/current.json
[info] done
[info] restoring loopback MTU to 65536
[info] restoring CPU governor → powersave

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