Skip to content

Enable json-tls and crud for ring-http-exchange#647

Merged
MDA2AV merged 1 commit intoMDA2AV:mainfrom
ruroru:main
Apr 27, 2026
Merged

Enable json-tls and crud for ring-http-exchange#647
MDA2AV merged 1 commit intoMDA2AV:mainfrom
ruroru:main

Conversation

@ruroru
Copy link
Copy Markdown
Contributor

@ruroru ruroru commented Apr 26, 2026

No description provided.

@ruroru ruroru force-pushed the main branch 2 times, most recently from 5c36322 to 3aedec0 Compare April 26, 2026 15:15
@ruroru
Copy link
Copy Markdown
Contributor Author

ruroru commented Apr 26, 2026

/benchmark -f ring-http-exchange

@github-actions
Copy link
Copy Markdown
Contributor

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

@ruroru ruroru force-pushed the main branch 2 times, most recently from 4400074 to 0bebe18 Compare April 26, 2026 15:28
@github-actions
Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: ring-http-exchange | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 1,361,549 6490.2% 13.3GiB -21.0% +216.7%
baseline 4096 1,254,001 6280.5% 12.9GiB -23.8% ~0%
limited-conn 512 868,851 5645.5% 12.7GiB +10.9% +876.9%
limited-conn 4096 904,584 5456.9% 12.8GiB +17.2% +966.7%
json 4096 454,448 5395.8% 14.0GiB -1.6% -66.7%
json-comp 512 18,795 545.9% 794MiB -0.5% -29.5%
json-comp 4096 141,366 4563.5% 14.6GiB +1.6% +147.5%
json-comp 16384 224,837 6271.6% 15.3GiB +6.8% +82.1%
json-tls 4096 465,841 6464.7% 14.2GiB NEW NEW
upload 32 2,724 2405.3% 346MiB +125.1% -99.2%
upload 256 2,886 4437.5% 373MiB +137.1% -99.2%
api-4 256 31,773 391.3% 732MiB -2.3% -16.2%
api-16 1024 75,879 1578.3% 1.4GiB +1.9% -68.2%
static 1024 230,269 6629.5% 4.7GiB +3.2% +88.0%
static 4096 226,934 6569.5% 4.9GiB +1.0% +14.0%
static 6800 243,670 6570.9% 4.9GiB -7.0% -62.0%
async-db 1024 80,217 6488.8% 4.7GiB +13.6% -76.8%
Full log
[info] CPU 6179.4% | Mem 4.8GiB

[run 2/3]
Running 5s test @ http://localhost:8080
  64 threads and 4096 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   154.20ms  231.32ms   1.73s    81.63%
    Req/Sec     3.69k     1.40k   15.40k    78.97%
  1157090 requests in 5.10s, 68.67GB read
Requests/sec: 226934.90
Transfer/sec:     13.47GB
[info] CPU 6569.5% | Mem 4.9GiB

[run 3/3]
Running 5s test @ http://localhost:8080
  64 threads and 4096 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    26.86ms   53.57ms 651.04ms   96.60%
    Req/Sec     3.55k     0.97k   15.96k    93.15%
  1116350 requests in 5.10s, 66.25GB read
Requests/sec: 218852.08
Transfer/sec:     12.99GB
[info] CPU 6581.0% | Mem 4.8GiB

=== Best: 226934 req/s (CPU: 6569.5%, Mem: 4.9GiB) ===
[info] saved results/static/4096/ring-http-exchange.json
httparena-bench-ring-http-exchange
httparena-bench-ring-http-exchange

==============================================
=== ring-http-exchange / 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   316.98ms  456.29ms   1.99s    81.49%
    Req/Sec     3.90k     2.90k   15.31k    66.13%
  1143987 requests in 5.10s, 67.90GB read
  Socket errors: connect 0, read 0, write 0, timeout 78
Requests/sec: 224279.60
Transfer/sec:     13.31GB
[info] CPU 6261.0% | Mem 4.9GiB

[run 2/3]
Running 5s test @ http://localhost:8080
  64 threads and 6800 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   318.04ms  469.00ms   1.99s    81.14%
    Req/Sec     4.05k     2.95k   15.12k    66.91%
  1242537 requests in 5.10s, 73.73GB read
  Socket errors: connect 0, read 0, write 0, timeout 65
Requests/sec: 243670.30
Transfer/sec:     14.46GB
[info] CPU 6570.9% | Mem 4.9GiB

[run 3/3]
Running 5s test @ http://localhost:8080
  64 threads and 6800 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    44.66ms   91.92ms 960.08ms   95.45%
    Req/Sec     3.98k     1.13k   13.92k    91.60%
  1229999 requests in 5.10s, 73.00GB read
Requests/sec: 241177.31
Transfer/sec:     14.31GB
[info] CPU 6473.4% | Mem 4.9GiB

=== Best: 243670 req/s (CPU: 6570.9%, Mem: 4.9GiB) ===
[info] saved results/static/6800/ring-http-exchange.json
httparena-bench-ring-http-exchange
httparena-bench-ring-http-exchange

==============================================
=== ring-http-exchange / 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   13.65ms   4.76ms   35.80ms   117.70ms   218.80ms

  738024 requests in 10.00s, 738024 responses
  Throughput: 73.79K req/s
  Bandwidth:  283.36MB/s
  Status codes: 2xx=738024, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 738024 / 738024 responses (100.0%)
  Reconnects: 29027
  Per-template: 147586,147740,147712,147650,147336
  Per-template-ok: 147586,147740,147712,147650,147336
[info] CPU 5715.7% | Mem 4.9GiB

[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   12.49ms   5.98ms   25.30ms   123.10ms   221.60ms

  800359 requests in 10.00s, 800359 responses
  Throughput: 80.02K req/s
  Bandwidth:  307.56MB/s
  Status codes: 2xx=800359, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 800359 / 800359 responses (100.0%)
  Reconnects: 31648
  Per-template: 159901,160036,159976,160302,160144
  Per-template-ok: 159901,160036,159976,160302,160144
[info] CPU 6460.7% | Mem 4.8GiB

[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   12.42ms   5.96ms   24.90ms   123.40ms   221.10ms

  802177 requests in 10.00s, 802177 responses
  Throughput: 80.20K req/s
  Bandwidth:  308.01MB/s
  Status codes: 2xx=802177, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 802177 / 802177 responses (100.0%)
  Reconnects: 31768
  Per-template: 160375,160626,160524,160460,160192
  Per-template-ok: 160375,160626,160524,160460,160192
[info] CPU 6488.8% | Mem 4.7GiB

=== Best: 80217 req/s (CPU: 6488.8%, Mem: 4.7GiB) ===
[info] input BW: 5.36MB/s (avg template: 70 bytes)
[info] saved results/async-db/1024/ring-http-exchange.json
httparena-bench-ring-http-exchange
httparena-bench-ring-http-exchange
[info] skip: ring-http-exchange does not subscribe to crud
[info] skip: ring-http-exchange does not subscribe to baseline-h2
[info] skip: ring-http-exchange does not subscribe to static-h2
[info] skip: ring-http-exchange does not subscribe to baseline-h2c
[info] skip: ring-http-exchange does not subscribe to json-h2c
[info] skip: ring-http-exchange does not subscribe to baseline-h3
[info] skip: ring-http-exchange does not subscribe to static-h3
[info] skip: ring-http-exchange does not subscribe to gateway-64
[info] skip: ring-http-exchange does not subscribe to gateway-h3
[info] skip: ring-http-exchange does not subscribe to production-stack
[info] skip: ring-http-exchange does not subscribe to unary-grpc
[info] skip: ring-http-exchange does not subscribe to unary-grpc-tls
[info] skip: ring-http-exchange does not subscribe to stream-grpc
[info] skip: ring-http-exchange does not subscribe to stream-grpc-tls
[info] skip: ring-http-exchange 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/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

@ruroru ruroru changed the title Enable json-tls for ring-http-exchange Enable json-tls and crud for ring-http-exchange Apr 26, 2026
@ruroru ruroru force-pushed the main branch 2 times, most recently from 990e43a to e6cbe8f Compare April 26, 2026 19:11
@ruroru
Copy link
Copy Markdown
Contributor Author

ruroru commented Apr 26, 2026

/benchmark -f ring-http-exchange

@github-actions
Copy link
Copy Markdown
Contributor

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

@ruroru ruroru force-pushed the main branch 2 times, most recently from c9ec913 to ad9246b Compare April 26, 2026 19:25
@github-actions
Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: ring-http-exchange | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 1,329,883 6539.5% 13.2GiB -22.8% +214.3%
baseline 4096 1,275,793 6231.0% 13.0GiB -22.4% +0.8%
limited-conn 512 874,220 5703.9% 13.4GiB +11.5% +930.8%
limited-conn 4096 885,983 5712.9% 13.4GiB +14.7% +1016.7%
json 4096 472,036 5462.1% 14.0GiB +2.2% -66.7%
json-comp 512 18,837 1052.7% 780MiB -0.3% -30.8%
json-comp 4096 141,701 4594.9% 14.7GiB +1.8% +149.2%
json-comp 16384 224,284 6247.4% 15.3GiB +6.5% +82.1%
json-tls 4096 469,588 6448.0% 14.0GiB NEW NEW
upload 32 2,698 2345.5% 337MiB +123.0% -99.2%
upload 256 2,867 4590.8% 392MiB +135.6% -99.1%
api-4 256 32,892 395.1% 838MiB +1.2% -4.1%
api-16 1024 78,592 1585.3% 1.4GiB +5.6% -68.2%
static 1024 223,896 6652.9% 4.8GiB +0.3% +92.0%
static 4096 225,873 6465.1% 4.9GiB +0.6% +14.0%
static 6800 222,404 6510.6% 4.9GiB -15.2% -62.0%
async-db 1024 80,234 6377.3% 4.8GiB +13.6% -76.4%
crud 4096 325,687 6815.6% 12.5GiB NEW NEW
Full log
  Templates: 5
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   13.28ms   4.71ms   35.90ms   124.40ms   223.40ms

  763642 requests in 10.00s, 763643 responses
  Throughput: 76.35K req/s
  Bandwidth:  293.24MB/s
  Status codes: 2xx=763643, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 763642 / 763643 responses (100.0%)
  Reconnects: 30063
  Per-template: 152894,152853,152477,152744,152674
  Per-template-ok: 152894,152853,152477,152744,152674
[info] CPU 6330.5% | Mem 4.9GiB

[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   12.49ms   6.00ms   24.20ms   126.20ms   226.00ms

  802342 requests in 10.00s, 802342 responses
  Throughput: 80.22K req/s
  Bandwidth:  308.21MB/s
  Status codes: 2xx=802342, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 802341 / 802342 responses (100.0%)
  Reconnects: 31741
  Per-template: 160583,160401,160363,160452,160542
  Per-template-ok: 160583,160401,160363,160452,160542
[info] CPU 6377.3% | Mem 4.8GiB

[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   12.47ms   6.01ms   24.00ms   126.10ms   227.90ms

  801229 requests in 10.00s, 801230 responses
  Throughput: 80.11K req/s
  Bandwidth:  307.73MB/s
  Status codes: 2xx=801230, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 801228 / 801230 responses (100.0%)
  Reconnects: 31760
  Per-template: 160441,160341,159960,160152,160334
  Per-template-ok: 160441,160341,159960,160152,160334
[info] CPU 6427.8% | Mem 4.7GiB

=== Best: 80234 req/s (CPU: 6377.3%, Mem: 4.8GiB) ===
[info] input BW: 5.36MB/s (avg template: 70 bytes)
[info] saved results/async-db/1024/ring-http-exchange.json
httparena-bench-ring-http-exchange
httparena-bench-ring-http-exchange

==============================================
=== ring-http-exchange / crud / 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:  200
  Templates: 20
  Expected:  200
  Duration:  15s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   13.30ms   1.27ms   4.03ms   311.60ms   669.40ms

  4551025 requests in 15.00s, 4550769 responses
  Throughput: 303.32K req/s
  Bandwidth:  109.68MB/s
  Status codes: 2xx=4550769, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 4550769 / 4550769 responses (100.0%)
  Reconnects: 20727
  Per-template: 147721,157164,174750,191440,210115,229458,247100,262034,265122,265755,265151,262353,262271,263176,269078,266951,252222,218463,183000,157445
  Per-template-ok: 147721,157164,174750,191440,210115,229458,247100,262034,265122,265755,265151,262353,262271,263176,269078,266951,252222,218463,183000,157445
[info] CPU 6555.7% | Mem 14.1GiB

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   12.45ms   1.74ms   4.12ms   301.30ms   668.80ms

  4855361 requests in 15.00s, 4855361 responses
  Throughput: 323.63K req/s
  Bandwidth:  116.86MB/s
  Status codes: 2xx=4855361, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 4855360 / 4855361 responses (100.0%)
  Reconnects: 22269
  Per-template: 161361,169603,184288,201424,217406,236443,257327,270886,279606,282268,282355,282235,283760,284511,284086,282257,270450,243174,207849,174071
  Per-template-ok: 161361,169603,184288,201424,217406,236443,257327,270886,279606,282268,282355,282235,283760,284511,284086,282257,270450,243174,207849,174071
[info] CPU 6839.2% | Mem 13.3GiB

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


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   12.39ms   1.72ms   4.15ms   303.90ms   677.90ms

  4885314 requests in 15.00s, 4885314 responses
  Throughput: 325.63K req/s
  Bandwidth:  117.59MB/s
  Status codes: 2xx=4885314, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 4885312 / 4885314 responses (100.0%)
  Reconnects: 22413
  Per-template: 161363,168803,184944,202934,220467,238460,257169,275002,286031,288924,285755,282400,283331,286436,285374,285495,271495,239448,205704,175777
  Per-template-ok: 161363,168803,184944,202934,220467,238460,257169,275002,286031,288924,285755,282400,283331,286436,285374,285495,271495,239448,205704,175777
[info] CPU 6815.6% | Mem 12.5GiB

=== Best: 325687 req/s (CPU: 6815.6%, Mem: 12.5GiB) ===
[info] input BW: 27.95MB/s (avg template: 90 bytes)
[info] saved results/crud/4096/ring-http-exchange.json
httparena-bench-ring-http-exchange
httparena-bench-ring-http-exchange
[info] skip: ring-http-exchange does not subscribe to baseline-h2
[info] skip: ring-http-exchange does not subscribe to static-h2
[info] skip: ring-http-exchange does not subscribe to baseline-h2c
[info] skip: ring-http-exchange does not subscribe to json-h2c
[info] skip: ring-http-exchange does not subscribe to baseline-h3
[info] skip: ring-http-exchange does not subscribe to static-h3
[info] skip: ring-http-exchange does not subscribe to gateway-64
[info] skip: ring-http-exchange does not subscribe to gateway-h3
[info] skip: ring-http-exchange does not subscribe to production-stack
[info] skip: ring-http-exchange does not subscribe to unary-grpc
[info] skip: ring-http-exchange does not subscribe to unary-grpc-tls
[info] skip: ring-http-exchange does not subscribe to stream-grpc
[info] skip: ring-http-exchange does not subscribe to stream-grpc-tls
[info] skip: ring-http-exchange 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/crud-4096.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/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
httparena-redis
[info] restoring loopback MTU to 65536
[info] restoring CPU governor → powersave

@ruroru ruroru force-pushed the main branch 4 times, most recently from c55062e to 3f7e025 Compare April 26, 2026 23:45
@MDA2AV MDA2AV merged commit 623e5d6 into MDA2AV:main Apr 27, 2026
4 checks passed
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