Skip to content

bjoern: clean apt lists and skip recommended packages#1037

Merged
MDA2AV merged 2 commits into
mainfrom
bjoern-dockerfile-cleanup
Jul 24, 2026
Merged

bjoern: clean apt lists and skip recommended packages#1037
MDA2AV merged 2 commits into
mainfrom
bjoern-dockerfile-cleanup

Conversation

@MDA2AV

@MDA2AV MDA2AV commented Jul 24, 2026

Copy link
Copy Markdown
Owner

Small image-layer cleanup for bjoern: --no-install-recommends and dropping the apt lists, so the layer doesn't carry the package index.

Doubles as the --save check for the per-framework results layout (#751, merged in #1034). bjoern currently publishes baseline-512 = 12,390 rps in site/data/results/bjoern.json, so:

/benchmark -f bjoern -t baseline --save

should update only that file's baseline-512 and baseline-4096 keys, and touch none of the other 107 framework files. Under the old layout it would have rewritten site/data/baseline-512.json and baseline-4096.json, which every framework shares.

Worth merging #1036 first — benchmark-pr.yml is currently unparseable on main, so no run can be dispatched until that lands.

🤖 Generated with Claude Code

@MDA2AV

MDA2AV commented Jul 24, 2026

Copy link
Copy Markdown
Owner Author

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

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 12,322 78.6% 164MiB -0.5% +3.1%
baseline 4096 98,769 429.0% 189MiB -0.2% -0.5%
pipelined 512 12,324 55.4% 162MiB +0.5% +8.0%
pipelined 4096 97,989 308.7% 431MiB ~0% +0.5%
limited-conn 512 13,725 89.5% 149MiB -0.2% -0.7%
limited-conn 4096 110,125 691.4% 192MiB +0.3% -1.0%
json 4096 318,976 4487.6% 222MiB +1.3% -1.3%
json-comp 512 34,545 652.0% 197MiB -1.2% -11.7%
json-comp 4096 235,623 4594.0% 245MiB +2.9% -1.6%
json-comp 16384 281,904 6321.5% 333MiB +3.2% -2.6%
upload 32 828 384.3% 2.1GiB +0.4% ~0%
upload 256 920 4857.4% 4.2GiB +4.3% -4.5%
api-4 256 13,389 337.6% 57MiB -14.4% +1.8%
api-16 1024 47,303 1252.9% 143MiB -0.5% -1.4%
static 1024 470,717 2821.1% 173MiB -0.3% -2.3%
static 4096 900,205 6617.6% 234MiB +0.5% +0.4%
static 6800 864,930 6410.0% 269MiB +0.4% -1.1%
async-db 1024 61,401 4296.4% 438MiB -9.3% -0.9%
Full log
[info] waiting for server...
[info] server ready

[run 1/3]
Running 5s test @ http://localhost:8080
  64 threads and 4096 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     9.49ms   12.16ms  51.82ms   82.21%
    Req/Sec    13.99k     0.95k   27.42k    96.13%
  4535650 requests in 5.10s, 69.33GB read
Requests/sec: 889443.07
Transfer/sec:     13.60GB
[info] CPU 6478.8% | Mem 229MiB

[run 2/3]
Running 5s test @ http://localhost:8080
  64 threads and 4096 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     9.49ms   12.19ms  66.03ms   82.22%
    Req/Sec    14.16k   845.53    22.48k    94.14%
  4590609 requests in 5.10s, 70.17GB read
Requests/sec: 900205.02
Transfer/sec:     13.76GB
[info] CPU 6617.6% | Mem 234MiB

[run 3/3]
Running 5s test @ http://localhost:8080
  64 threads and 4096 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     9.49ms   12.16ms  53.36ms   82.17%
    Req/Sec    13.89k     0.94k   24.81k    91.53%
  4503930 requests in 5.10s, 68.85GB read
Requests/sec: 883187.78
Transfer/sec:     13.50GB
[info] CPU 6427.4% | Mem 234MiB

=== Best: 900205 req/s (CPU: 6617.6%, Mem: 234MiB) ===
[info] saved results/static/4096/bjoern.json
httparena-bench-bjoern
httparena-bench-bjoern

==============================================
=== bjoern / 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    10.71ms   10.91ms 182.95ms   86.29%
    Req/Sec    13.59k     1.13k   32.63k    93.09%
  4404624 requests in 5.10s, 67.34GB read
Requests/sec: 863844.52
Transfer/sec:     13.21GB
[info] CPU 6348.3% | Mem 267MiB

[run 2/3]
Running 5s test @ http://localhost:8080
  64 threads and 6800 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    10.74ms   10.92ms 260.03ms   86.59%
    Req/Sec    13.45k     1.11k   31.20k    92.39%
  4364325 requests in 5.10s, 66.72GB read
Requests/sec: 855717.11
Transfer/sec:     13.08GB
[info] CPU 6650.0% | Mem 270MiB

[run 3/3]
Running 5s test @ http://localhost:8080
  64 threads and 6800 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    10.68ms   10.89ms 189.13ms   86.06%
    Req/Sec    13.61k     1.21k   32.72k    92.97%
  4411149 requests in 5.10s, 67.44GB read
Requests/sec: 864930.50
Transfer/sec:     13.22GB
[info] CPU 6410.0% | Mem 269MiB

=== Best: 864930 req/s (CPU: 6410.0%, Mem: 269MiB) ===
[info] saved results/static/6800/bjoern.json
httparena-bench-bjoern
httparena-bench-bjoern

==============================================
=== bjoern / async-db / 1024c (tool=gcannon) ===
==============================================
[info] resetting postgres for a clean per-profile baseline
[info] starting postgres sidecar
httparena-postgres
[info] postgres ready (seeded)
[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   16.79ms   9.39ms   46.00ms   58.00ms   69.00ms

  594833 requests in 10.00s, 594835 responses
  Throughput: 59.47K req/s
  Bandwidth:  229.40MB/s
  Status codes: 2xx=594835, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 594834 / 594835 responses (100.0%)
  Reconnects: 23404
  Per-template: 118900,115749,118164,120080,121941
  Per-template-ok: 118900,115749,118164,120080,121941
[info] CPU 4209.1% | Mem 436MiB

[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   16.67ms   9.33ms   46.20ms   57.90ms   65.00ms

  601253 requests in 10.00s, 601255 responses
  Throughput: 60.11K req/s
  Bandwidth:  231.76MB/s
  Status codes: 2xx=601255, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 601254 / 601255 responses (100.0%)
  Reconnects: 23710
  Per-template: 120622,116863,119194,121335,123240
  Per-template-ok: 120622,116863,119194,121335,123240
[info] CPU 4290.7% | Mem 438MiB

[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   16.23ms   8.93ms   46.00ms   56.90ms   66.00ms

  614018 requests in 10.00s, 614018 responses
  Throughput: 61.39K req/s
  Bandwidth:  236.95MB/s
  Status codes: 2xx=614018, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 614018 / 614018 responses (100.0%)
  Reconnects: 24242
  Per-template: 123128,118835,121739,124278,126038
  Per-template-ok: 123128,118835,121739,124278,126038
[info] CPU 4296.4% | Mem 438MiB

=== Best: 61401 req/s (CPU: 4296.4%, Mem: 438MiB) ===
[info] input BW: 4.10MB/s (avg template: 70 bytes)
[info] saved results/async-db/1024/bjoern.json
httparena-bench-bjoern
httparena-bench-bjoern
[info] skip: bjoern does not subscribe to crud
[info] skip: bjoern does not subscribe to fortunes
[info] skip: bjoern does not subscribe to baseline-h2
[info] skip: bjoern does not subscribe to static-h2
[info] skip: bjoern does not subscribe to baseline-h2c
[info] skip: bjoern does not subscribe to json-h2c
[info] skip: bjoern does not subscribe to baseline-h3
[info] skip: bjoern does not subscribe to static-h3
[info] skip: bjoern does not subscribe to gateway-64
[info] skip: bjoern does not subscribe to gateway-h3
[info] skip: bjoern does not subscribe to production-stack
[info] skip: bjoern does not subscribe to unary-grpc
[info] skip: bjoern does not subscribe to unary-grpc-tls
[info] skip: bjoern does not subscribe to stream-grpc
[info] skip: bjoern does not subscribe to stream-grpc-tls
[info] skip: bjoern does not subscribe to echo-ws
[info] skip: bjoern does not subscribe to echo-ws-pipeline
[info] skip: bjoern does not subscribe to echo-ws-limited
[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/bjoern.json - 18 new, 18 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536

@MDA2AV
MDA2AV merged commit a52f304 into main Jul 24, 2026
@MDA2AV
MDA2AV deleted the bjoern-dockerfile-cleanup branch July 24, 2026 21:54
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