Skip to content

sark: Optimize memory & performance#938

Draft
inq wants to merge 6 commits into
MDA2AV:mainfrom
inq:sark-ws
Draft

sark: Optimize memory & performance#938
inq wants to merge 6 commits into
MDA2AV:mainfrom
inq:sark-ws

Conversation

@inq

@inq inq commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Description


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

Command Description
/benchmark -f <framework> Run all benchmark tests
/benchmark -f <framework> -t <test> Run a specific test
/benchmark -f <framework> --save Run and save results (updates leaderboard on merge)

Always specify -f <framework>. Results are automatically compared against the current leaderboard.


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, ghz) are built as self-contained Docker images on first run.

@inq

inq commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f sark

@github-actions

Copy link
Copy Markdown
Contributor

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

@inq

inq commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f sark-gateway

@github-actions

Copy link
Copy Markdown
Contributor

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

@inq

inq commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f sark-production

@github-actions

Copy link
Copy Markdown
Contributor

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

@inq

inq commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f sark-h3

@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: sark-h3 | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline-h3 64 43,395 48.3% 450MiB NEW NEW
static-h3 64 5,207 95.8% 452MiB NEW NEW
Full log
request     :      409us     90.21ms     34.26ms    37.20ms    45.77ms    33.32ms      6.07ms    89.71%
connect     :     3.21ms     20.95ms     10.50ms    20.64ms    20.95ms     9.12ms      4.41ms    75.00%
TTFB        :    13.74ms     54.26ms     43.97ms    54.06ms    54.26ms    36.27ms     12.12ms    82.81%
req/s       :     636.20      963.95      674.11     746.81     963.95     679.23       45.26    93.75%
min RTT     :      327us     18.26ms      6.92ms    11.57ms    18.26ms     7.31ms      3.92ms    76.56%
smoothed RTT:      611us     34.99ms     30.27ms    34.79ms    34.99ms    27.31ms      7.83ms    87.50%
packets sent:        272         277         275        277        277     275.09        1.33    78.13%
packets recv:        162         215         169        185        215     170.30        8.20    87.50%
packets lost:          0           4           0          4          4       0.98        1.70    76.56%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 48.3% | Mem 450MiB

[run 3/3]
starting benchmark...
.
23.
.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Certificate: ED25519 256 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3
16. Stopping all clients.
. Stopping all clients.Stopped all clients for thread #0

46. Stopping all clients.Main benchmark duration is over for thread #24. Stopping all clients.

61. Stopping all clients.
34. Stopping all clients.

finished in 5.01s, 43074.20 req/s, 504.86KB/s
requests: 215371 total, 219467 started, 215371 done, 215371 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 215371 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 2.47MB (2584900) total, 1.44MB (1507597) headers (space savings 85.11%), 210.32KB (215371) data
UDP datagram: 17477 sent, 10802 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :      534us     94.78ms     34.77ms    36.98ms    45.33ms    33.99ms      5.79ms    91.56%
connect     :     4.43ms     12.93ms      8.11ms    12.48ms    12.93ms     9.01ms      2.62ms    60.94%
TTFB        :    15.57ms     48.57ms     31.16ms    48.27ms    48.57ms    36.79ms     10.34ms    68.75%
req/s       :     639.94      781.63      661.82     738.62     781.63     672.85       30.46    85.94%
min RTT     :      471us     12.13ms      7.14ms    11.63ms    12.13ms     7.24ms      2.95ms    65.63%
smoothed RTT:     3.55ms     36.21ms     31.66ms    35.21ms    36.21ms    27.20ms      8.92ms    82.81%
packets sent:        272         277         275        277        277     275.08        1.30    75.00%
packets recv:        163         189         166        182        189     168.78        6.14    85.94%
packets lost:          0           4           0          4          4       0.69        1.47    84.38%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 35.3% | Mem 476MiB

=== Best: 43395 req/s (CPU: 48.3%, Mem: 450MiB) ===
[info] saved results/baseline-h3/64/sark-h3.json
httparena-bench-sark-h3
httparena-bench-sark-h3

==============================================
=== sark-h3 / static-h3 / 64c (tool=h2load-h3) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
starting benchmark...
.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Certificate: ED25519 256 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3
49. Stopping all clients.
3. Stopping all clients.
21. Stopping all clients.
14. Stopping all clients.

8. Stopping all clients.

51. Stopping all clients.

finished in 5.01s, 5217.40 req/s, 80.98MB/s
requests: 26087 total, 30183 started, 26087 done, 26087 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 26090 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 404.91MB (424579716) total, 463.58KB (474705) headers (space savings 73.39%), 404.32MB (423958453) data
UDP datagram: 201007 sent, 379444 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :    22.95ms       4.07s    243.53ms      1.01s      2.69s   394.16ms    476.55ms    93.96%
connect     :     1.38ms     40.83ms     38.69ms    40.49ms    40.83ms    26.89ms     15.55ms    75.00%
TTFB        :    25.76ms    103.23ms     91.60ms   101.83ms   103.23ms    72.13ms     25.59ms    65.63%
req/s       :      12.59      246.38       50.89     234.77     246.38      81.51       67.66    79.69%
min RTT     :        0us      1.12ms       420us      982us     1.12ms      494us       235us    73.44%
smoothed RTT:      363us    333.00ms       951us     3.17ms   333.00ms    17.01ms     70.64ms    95.31%
packets sent:        510        9168        1947       8794       9168    3142.73     2498.31    79.69%
packets recv:        896       17773        3613      16948      17773    5928.81     4885.80    79.69%
packets lost:         18         222          84        209        222     103.11       52.94    71.88%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 95.8% | Mem 452MiB

[run 2/3]
starting benchmark...

37.
42.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Certificate: ED25519 256 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3
48.
. Stopping all clients.Stopped all clients for thread #3

. Stopping all clients.Main benchmark duration is over for thread #
29Stopped all clients for thread #36
. Stopping all clients.
34
40


finished in 5.01s, 5194.60 req/s, 80.95MB/s
requests: 25973 total, 30069 started, 25973 done, 25973 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 25996 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 404.77MB (424435684) total, 460.79KB (471848) headers (space savings 73.50%), 404.18MB (423817784) data
UDP datagram: 203180 sent, 377616 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :     9.84ms       4.28s    252.85ms   895.89ms      2.56s   412.15ms    438.78ms    94.19%
connect     :     3.04ms     23.04ms     10.76ms    22.76ms    23.04ms    12.42ms      7.09ms    43.75%
TTFB        :    12.89ms     70.11ms     47.88ms    69.05ms    70.11ms    46.08ms     15.78ms    53.13%
req/s       :      28.19      170.20       51.09     167.79     170.20      81.16       53.98    70.31%
min RTT     :        0us      1.33ms       515us      926us     1.33ms      582us       204us    78.13%
smoothed RTT:      588us    333.00ms       971us     2.88ms   333.00ms     6.51ms     41.47ms    98.44%
packets sent:       1158        6444        2046       6344       6444    3176.69     1990.22    68.75%
packets recv:       2035       12181        3737      12053      12181    5900.25     3871.79    70.31%
packets lost:         56         205          88        196        205     116.11       52.65    62.50%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 100.3% | Mem 474MiB

[run 3/3]
starting benchmark...
1.
61.Main benchmark duration is started for thread #4844.

52.
7.
35.
29.

27.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Certificate: ED25519 256 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3
17. Stopping all clients.
. Stopping all clients.Main benchmark duration is over for thread #7. Stopping all clients.

24
20. Stopping all clients.

finished in 5.01s, 4994.00 req/s, 77.91MB/s
requests: 24970 total, 29066 started, 24970 done, 24970 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 24990 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 389.57MB (408491692) total, 442.43KB (453044) headers (space savings 73.54%), 389.00MB (407898247) data
UDP datagram: 197724 sent, 366290 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :    13.64ms       4.05s    295.00ms      1.18s      2.67s   467.25ms    496.43ms    94.22%
connect     :     3.51ms     29.16ms     13.33ms    28.85ms    29.16ms    12.26ms      6.85ms    75.00%
TTFB        :    17.29ms     80.18ms     69.41ms    79.57ms    80.18ms    56.00ms     20.99ms    53.13%
req/s       :      28.79      163.38       57.09     154.17     163.38      78.02       46.01    68.75%
min RTT     :        0us      1.12ms       501us     1.02ms     1.12ms      564us       223us    76.56%
smoothed RTT:      427us    333.00ms      1.06ms     2.85ms   333.00ms    11.65ms     58.18ms    96.88%
packets sent:       1213        6179        2386       5830       6179    3091.44     1701.51    67.19%
packets recv:       2069       11775        4334      11116      11775    5723.28     3319.84    67.19%
packets lost:         56         191          99        187        191     115.75       44.93    59.38%
GRO packets :          1           1           1          1          1       1.00        0.00   100.00%
[info] CPU 100.3% | Mem 511MiB

=== Best: 5207 req/s (CPU: 95.8%, Mem: 452MiB) ===
[info] saved results/static-h3/64/sark-h3.json
httparena-bench-sark-h3
httparena-bench-sark-h3
[info] skip: sark-h3 does not subscribe to gateway-64
[info] skip: sark-h3 does not subscribe to gateway-h3
[info] skip: sark-h3 does not subscribe to production-stack
[info] skip: sark-h3 does not subscribe to unary-grpc
[info] skip: sark-h3 does not subscribe to unary-grpc-tls
[info] skip: sark-h3 does not subscribe to stream-grpc
[info] skip: sark-h3 does not subscribe to stream-grpc-tls
[info] skip: sark-h3 does not subscribe to echo-ws
[info] skip: sark-h3 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-h3-64.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-h3-64.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
[info] restoring loopback MTU to 65536

@inq

inq commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f sark-production

@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: sark-production | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
production-stack 256 0 300.3% 109MiB NEW NEW
production-stack 1024 0 300.7% 167MiB NEW NEW
Full log
Server Temp Key: X25519 253 bits
Application protocol: h2
57. Stopping all clients.Stopped all clients for thread #34

12. Stopping all clients.
4Stopped all clients for thread #. Stopping all clients.12

26. Stopping all clients.
. Stopping all clients.
. Stopping all clients.
39Stopped all clients for thread #32
53Main benchmark duration is over for thread #41Main benchmark duration is over for thread #
. Stopping all clients.
61. Stopping all clients.


. Stopping all clients.Stopped all clients for thread #
29

25. Stopping all clients.

finished in 5.06s, 160118.40 req/s, 9.06MB/s
requests: 800592 total, 816976 started, 800592 done, 0 succeeded, 800592 failed, 0 errored, 0 timeout
status codes: 0 2xx, 0 3xx, 800592 4xx, 0 5xx
traffic: 45.30MB (47503663) total, 2.34MB (2455024) headers (space savings 95.45%), 11.18MB (11727030) data
                     min         max         mean         sd        +/- sd
time for request:     4.32ms    139.61ms     73.20ms     27.42ms    66.09%
time for connect:     2.83ms       3.22s       1.37s    972.22ms    56.05%
time to 1st byte:    18.89ms       3.35s       1.45s       1.01s    55.96%
req/s           :      57.59      313.57      156.33       73.63    63.18%
=== h2load-writes ===
starting benchmark...
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2

finished in 5.00s, 14121.60 req/s, 1.25MB/s
requests: 70608 total, 71632 started, 70608 done, 0 succeeded, 70608 failed, 0 errored, 0 timeout
status codes: 0 2xx, 0 3xx, 70608 4xx, 0 5xx
traffic: 6.27MB (6570964) total, 210.07KB (215114) headers (space savings 95.31%), 1.41MB (1482768) data
                     min         max         mean         sd        +/- sd
time for request:     1.89ms    107.78ms     52.47ms     31.65ms    47.95%
time for connect:     3.55ms     22.77ms     13.16ms      5.79ms    58.59%
time to 1st byte:    22.45ms     61.14ms     30.75ms      9.38ms    88.30%
req/s           :       0.00      158.39      110.31       66.83    73.44%
[info] CPU 300.7% | Mem 167MiB
[info]   edge: 0% 0MiB | cache: 0% 4MiB | authsvc: 0% 2MiB | server: 300% 160MiB

[run 2/3]
=== h2load-reads ===
starting benchmark...
.

62.Warm-up phase is over for thread #5.



20.
8.
59.
34.
44.
28.

55.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2

23Main benchmark duration is started for thread #24.
.
.



14. Stopping all clients.

finished in 5.07s, 163987.20 req/s, 9.12MB/s
requests: 819936 total, 836320 started, 819936 done, 0 succeeded, 819936 failed, 0 errored, 0 timeout
status codes: 0 2xx, 0 3xx, 819936 4xx, 0 5xx
traffic: 45.60MB (47819926) total, 2.40MB (2513056) headers (space savings 95.45%), 11.45MB (12010614) data
                     min         max         mean         sd        +/- sd
time for request:     3.84ms    140.78ms     72.57ms     26.96ms    71.04%
time for connect:     2.77ms       3.13s       1.31s    961.98ms    55.27%
time to 1st byte:    14.82ms       3.27s       1.39s    997.99ms    55.47%
req/s           :      60.79      300.79      160.12       72.96    59.38%
=== h2load-writes ===
starting benchmark...
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2

finished in 5.00s, 11296.00 req/s, 1.32MB/s
requests: 56480 total, 57504 started, 56480 done, 0 succeeded, 56480 failed, 0 errored, 0 timeout
status codes: 0 2xx, 0 3xx, 56480 4xx, 0 5xx
traffic: 6.60MB (6916974) total, 168.10KB (172135) headers (space savings 95.31%), 1.13MB (1186080) data
                     min         max         mean         sd        +/- sd
time for request:     2.40ms    107.92ms     53.78ms     30.89ms    49.46%
time for connect:     3.01ms     23.24ms     13.47ms      6.07ms    58.59%
time to 1st byte:    23.46ms     68.99ms     34.52ms     13.65ms    79.22%
req/s           :       0.00      153.60       88.24       72.15    60.16%
[info] CPU 300.5% | Mem 172MiB
[info]   edge: 0% 0MiB | cache: 0% 4MiB | authsvc: 0% 2MiB | server: 300% 166MiB

[run 3/3]
=== h2load-reads ===
starting benchmark...
6Main benchmark duration is started for thread #29.
.
4.
37.
progress: Main benchmark duration is started for thread #15.
12% of clients started
50.

.

.Main benchmark duration is started for thread #45.
26Main benchmark duration is started for thread #21.
.Warm-up phase is over for thread #4613Warm-up phase is over for thread #.


25Main benchmark duration is started for thread #23.
% of clients started.

51.

.Warm-up phase is over for thread #progress: 
2460Main benchmark duration is started for thread #.
.
.Warm-up phase is over for thread #


.32
46.
25.
.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2
4655
54
7. Stopping all clients.
25
. Stopping all clients.
. Stopping all clients.Main benchmark duration is over for thread #60. Stopping all clients.

17
59Stopped all clients for thread #36
. Stopping all clients.

finished in 5.06s, 160236.80 req/s, 8.95MB/s
requests: 801184 total, 817568 started, 801184 done, 0 succeeded, 801184 failed, 0 errored, 0 timeout
status codes: 0 2xx, 0 3xx, 801184 4xx, 0 5xx
traffic: 44.76MB (46937212) total, 2.34MB (2456800) headers (space savings 95.45%), 11.19MB (11733750) data
                     min         max         mean         sd        +/- sd
time for request:     3.62ms    140.66ms     70.44ms     28.39ms    69.29%
time for connect:     3.93ms       3.40s       1.52s    994.29ms    56.64%
time to 1st byte:    11.55ms       3.54s       1.60s       1.03s    56.74%
req/s           :      51.19      371.15      156.45       81.76    66.11%
=== h2load-writes ===
starting benchmark...
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2
7. Stopping all clients.

finished in 5.00s, 14246.40 req/s, 1.34MB/s
requests: 71232 total, 72256 started, 71232 done, 0 succeeded, 71232 failed, 0 errored, 0 timeout
status codes: 0 2xx, 0 3xx, 71232 4xx, 0 5xx
traffic: 6.68MB (7009293) total, 211.32KB (216391) headers (space savings 95.33%), 1.43MB (1495872) data
                     min         max         mean         sd        +/- sd
time for request:     2.01ms    107.26ms     42.62ms     32.53ms    57.05%
time for connect:     3.17ms     22.19ms     12.87ms      5.69ms    56.25%
time to 1st byte:    22.15ms     47.44ms     26.84ms      6.24ms    89.61%
req/s           :       0.00      195.18      111.28       91.05    60.16%
[info] CPU 300.6% | Mem 175MiB
[info]   edge: 0% 0MiB | cache: 0% 4MiB | authsvc: 0% 2MiB | server: 300% 169MiB

=== Best: 0 req/s (CPU: 300.7%, Mem: 167MiB) ===
[info] saved results/production-stack/1024/sark-production.json
[info] skip: sark-production does not subscribe to unary-grpc
[info] skip: sark-production does not subscribe to unary-grpc-tls
[info] skip: sark-production does not subscribe to stream-grpc
[info] skip: sark-production does not subscribe to stream-grpc-tls
[info] skip: sark-production does not subscribe to echo-ws
[info] skip: sark-production 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/production-stack-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/production-stack-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536

@inq

inq commented Jun 28, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f sark

@github-actions

Copy link
Copy Markdown
Contributor

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

@inq

inq commented Jun 28, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f sark

@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: sark | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 3,966,563 6454.5% 1.1GiB -0.5% ~0%
baseline 4096 4,125,496 6273.7% 1.2GiB -1.8% ~0%
pipelined 512 53,739,450 6348.0% 1.1GiB +34.1% ~0%
pipelined 4096 57,145,513 6385.1% 1.2GiB +39.8% ~0%
limited-conn 512 2,437,832 5953.8% 1.3GiB -0.2% ~0%
limited-conn 4096 2,678,276 6106.9% 1.3GiB -0.1% ~0%
json 4096 1,831,471 6427.3% 1.3GiB +1.1% ~0%
json-comp 512 6,713 3648.4% 1.7GiB -98.9% +30.8%
json-comp 4096 7,093 3980.3% 1.7GiB -98.9% +30.8%
json-comp 16384 6,621 4072.4% 1.7GiB -99.0% +30.8%
json-tls 4096 1,822,018 5737.0% 1.3GiB -0.2% ~0%
upload 32 2,705 1930.6% 1.1GiB -0.8% ~0%
upload 256 2,629 5217.9% 1.2GiB -1.4% ~0%
api-4 256 66,500 383.9% 180MiB -1.6% -1.1%
api-16 1024 259,533 1512.5% 398MiB +1.5% ~0%
static 1024 1,365,995 6436.9% 2.4GiB +0.4% ~0%
static 4096 1,293,576 6418.7% 2.6GiB ~0% +4.0%
static 6800 1,218,564 6313.6% 2.6GiB +0.1% ~0%
async-db 1024 347,789 3071.8% 1.3GiB +0.4% -7.1%
crud 4096 543,752 1567.7% 1.3GiB -0.8% ~0%
fortunes 1024 246,787 6033.1% 1.2GiB +0.1% ~0%
baseline-h2 256 9,377,952 4626.6% 1.1GiB -9.4% ~0%
baseline-h2 1024 9,568,792 5014.9% 1.3GiB -9.0% ~0%
static-h2 256 889,322 4484.1% 1.4GiB +15.6% -6.7%
static-h2 1024 857,206 3942.8% 2.1GiB +4.9% +5.0%
baseline-h2c 256 11,647,534 5835.7% 1.1GiB -1.5% ~0%
baseline-h2c 1024 12,314,435 6423.1% 1.1GiB -1.8% ~0%
baseline-h2c 4096 12,106,267 6431.2% 1.2GiB -1.9% -7.7%
json-h2c 1024 3,261,383 6559.3% 1.3GiB +0.6% ~0%
json-h2c 4096 1,973,242 6411.5% 1.9GiB -0.1% ~0%
unary-grpc 256 370,563 197.6% 1.1GiB ~0% ~0%
unary-grpc 1024 1,473,467 2048.7% 1.2GiB ~0% ~0%
unary-grpc-tls 256 5,549,781 5589.3% 1.1GiB -3.3% ~0%
unary-grpc-tls 1024 5,636,067 6009.1% 1.2GiB -2.7% -7.7%
stream-grpc 64 9,659,000 87.7% 1.1GiB -2.6% ~0%
stream-grpc-tls 64 9,869,000 93.3% 1.1GiB +3.4% ~0%
echo-ws 512 4,257,596 6288.1% 1.1GiB +1.9% ~0%
echo-ws 4096 4,405,260 6237.2% 1.2GiB +0.2% ~0%
echo-ws 16384 4,078,615 6125.8% 1.6GiB ~0% ~0%
echo-ws-pipeline 512 64,247,459 6316.9% 1.1GiB +1.9% ~0%
echo-ws-pipeline 4096 66,443,625 6215.1% 1.2GiB +2.8% ~0%
echo-ws-pipeline 16384 61,314,115 6375.1% 1.6GiB +0.6% ~0%
Full log
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3 [WS]
  Target:    localhost:8080/ws
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  16
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   1.33ms   1.25ms   1.65ms   1.96ms   5.45ms

  224559904 frames sent in 5.00s, 224497104 frames received
  Throughput: 44.89M req/s
  Bandwidth:  299.75MB/s
  WS upgrades: 4096
  WS frames:   224497104
  Latency samples: 224497104 / 224497104 responses (100.0%)
[info] CPU 3517.0% | Mem 1.2GiB

[run 2/3]
gcannon v0.5.3 [WS]
  Target:    localhost:8080/ws
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  16
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency    997us    989us   1.21ms   1.39ms   1.83ms

  328484112 frames sent in 5.00s, 328474112 frames received
  Throughput: 65.67M req/s
  Bandwidth:  438.41MB/s
  WS upgrades: 4096
  WS frames:   328474112
  Latency samples: 328484288 / 328474112 responses (100.0%)
[info] CPU 6407.4% | Mem 1.2GiB

[run 3/3]
gcannon v0.5.3 [WS]
  Target:    localhost:8080/ws
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  16
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency    985us    987us   1.20ms   1.33ms   1.47ms

  332208400 frames sent in 5.00s, 332218128 frames received
  Throughput: 66.42M req/s
  Bandwidth:  443.37MB/s
  WS upgrades: 4096
  WS frames:   332218128
  Latency samples: 332202160 / 332218128 responses (100.0%)
[info] CPU 6215.1% | Mem 1.2GiB

=== Best: 66443625 req/s (CPU: 6215.1%, Mem: 1.2GiB) ===
[info] saved results/echo-ws-pipeline/4096/sark.json
httparena-bench-sark
httparena-bench-sark

==============================================
=== sark / echo-ws-pipeline / 16384c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3 [WS]
  Target:    localhost:8080/ws
  Threads:   64
  Conns:     16384 (256/thread)
  Pipeline:  16
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   5.34ms   5.08ms   6.80ms   7.53ms   9.50ms

  209355219 frames sent in 5.00s, 209093139 frames received
  Throughput: 41.81M req/s
  Bandwidth:  279.49MB/s
  WS upgrades: 16380
  WS frames:   209093139
  Latency samples: 209093139 / 209093139 responses (100.0%)
[info] CPU 3341.5% | Mem 1.5GiB

[run 2/3]
gcannon v0.5.3 [WS]
  Target:    localhost:8080/ws
  Threads:   64
  Conns:     16384 (256/thread)
  Pipeline:  16
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   4.23ms   4.29ms   4.66ms   4.97ms   6.32ms

  306832721 frames sent in 5.00s, 306570577 frames received
  Throughput: 61.29M req/s
  Bandwidth:  409.57MB/s
  WS upgrades: 16384
  WS frames:   306570577
  Latency samples: 306570577 / 306570577 responses (100.0%)
[info] CPU 6375.1% | Mem 1.6GiB

[run 3/3]
gcannon v0.5.3 [WS]
  Target:    localhost:8080/ws
  Threads:   64
  Conns:     16384 (256/thread)
  Pipeline:  16
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   4.29ms   4.33ms   4.71ms   5.06ms   5.88ms

  304210976 frames sent in 5.00s, 303948832 frames received
  Throughput: 60.77M req/s
  Bandwidth:  406.06MB/s
  WS upgrades: 16384
  WS frames:   303948832
  Latency samples: 303948832 / 303948832 responses (100.0%)
[info] CPU 6138.0% | Mem 1.7GiB

=== Best: 61314115 req/s (CPU: 6375.1%, Mem: 1.6GiB) ===
[info] saved results/echo-ws-pipeline/16384/sark.json
httparena-bench-sark
httparena-bench-sark
[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/baseline-h2-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/baseline-h2c-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/crud-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/echo-ws-16384.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/echo-ws-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/echo-ws-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/echo-ws-pipeline-16384.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/echo-ws-pipeline-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/echo-ws-pipeline-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/fortunes-1024.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-h2c-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/json-h2c-4096.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/static-h2-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/static-h2-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/stream-grpc-64.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/stream-grpc-tls-64.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/unary-grpc-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/unary-grpc-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/unary-grpc-tls-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/unary-grpc-tls-256.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

@inq

inq commented Jun 29, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f sark-production

@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: sark-production | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
production-stack 256 31,009 351.5% 374MiB NEW NEW
production-stack 1024 26,721 338.5% 719MiB NEW NEW
Full log



43. Stopping all clients.Stopped all clients for thread #Stopped all clients for thread #Main benchmark duration is over for thread #1958
. Stopping all clients.
10

58

54. Stopping all clients.
54
. Stopping all clients.Stopped all clients for thread #39

28. Stopping all clients.

finished in 5.05s, 25573.60 req/s, 341.77MB/s
requests: 127868 total, 144252 started, 127868 done, 127868 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 127868 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 1.67GB (1791877753) total, 11.96MB (12544680) headers (space savings 38.85%), 1.65GB (1775289012) data
                     min         max         mean         sd        +/- sd
time for request:       92us       4.46s    119.69ms    187.93ms    92.08%
time for connect:     9.87ms    573.19ms    190.92ms    136.09ms    71.39%
time to 1st byte:   136.65ms       1.10s    578.30ms    246.67ms    63.09%
req/s           :       3.20      301.15       24.97       51.03    89.94%
=== h2load-writes ===
starting benchmark...
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2

finished in 5.00s, 1415.00 req/s, 63.41KB/s
requests: 7075 total, 8099 started, 7075 done, 7075 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 7075 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 317.04KB (324647) total, 248.73KB (254700) headers (space savings 40.98%), 0B (0) data
                     min         max         mean         sd        +/- sd
time for request:    43.45ms       1.62s    162.68ms    240.00ms    93.77%
time for connect:     2.97ms     41.31ms     20.15ms     10.54ms    58.59%
time to 1st byte:   486.90ms       1.65s       1.15s    430.53ms    72.50%
req/s           :       0.00       99.19       11.05       24.18    89.06%
[info] CPU 338.5% | Mem 719MiB
[info]   edge: 235% 578MiB | cache: 23% 6MiB | authsvc: 29% 35MiB | server: 51% 100MiB

[run 2/3]
=== h2load-reads ===
starting benchmark...
1Main benchmark duration is started for thread #4.
.
.Main benchmark duration is started for thread #42.


38Main benchmark duration is started for thread #44.Main benchmark duration is started for thread #.
.
25.
59.

..
45.
13.
.

35.
% of clients started
31.
22.
3progress: .50% of clients started

TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2
2. Stopping all clients.
25. Stopping all clients.
13. Stopping all clients.
. Stopping all clients.


34. Stopping all clients.
44
53

22Stopped all clients for thread #43

54

finished in 5.06s, 17002.80 req/s, 244.30MB/s
requests: 85014 total, 101398 started, 85014 done, 85014 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 85014 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 1.19GB (1280847358) total, 8.17MB (8569775) headers (space savings 38.52%), 1.18GB (1269486160) data
                     min         max         mean         sd        +/- sd
time for request:       86us       3.98s    233.16ms    407.47ms    89.01%
time for connect:    18.94ms    784.40ms    333.26ms    232.25ms    57.91%
time to 1st byte:    82.83ms       1.97s       1.14s    503.19ms    61.13%
req/s           :       3.20      197.18       16.60       30.48    90.43%
=== h2load-writes ===
starting benchmark...
5Main benchmark duration is started for thread #7.
.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2

finished in 5.00s, 9579.60 req/s, 422.20KB/s
requests: 47898 total, 48922 started, 47898 done, 47898 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 47898 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 2.06MB (2161682) total, 1.64MB (1724328) headers (space savings 40.98%), 0B (0) data
                     min         max         mean         sd        +/- sd
time for request:    14.49ms       2.82s     62.34ms    197.44ms    97.82%
time for connect:     2.60ms     41.15ms     19.23ms     10.40ms    59.38%
time to 1st byte:    79.06ms       1.94s    644.52ms    643.18ms    82.81%
req/s           :       1.60      236.78       74.83      103.67    71.09%
[info] CPU 346.4% | Mem 728MiB
[info]   edge: 232% 586MiB | cache: 23% 6MiB | authsvc: 40% 33MiB | server: 51% 104MiB

[run 3/3]
=== h2load-reads ===
starting benchmark...
62.
.
.Main benchmark duration is started for thread #26.

progress: Warm-up phase is over for thread #Main benchmark duration is started for thread #32.
17.
93% of clients started
.Main benchmark duration is started for thread #58.
14.

.Main benchmark duration is started for thread #42.

11.
0.
.
52.
15.
56Warm-up phase is over for thread #Main benchmark duration is started for thread #1816.
.


50.
.
.
44.
.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2
3236
15. Stopping all clients.

52. Stopping all clients.

19
0. Stopping all clients.

finished in 5.06s, 23182.20 req/s, 315.50MB/s
requests: 115911 total, 132295 started, 115911 done, 115911 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 115911 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 1.54GB (1654115595) total, 10.92MB (11448863) headers (space savings 38.77%), 1.53GB (1638967623) data
                     min         max         mean         sd        +/- sd
time for request:       96us       1.79s    144.89ms    231.95ms    90.45%
time for connect:    22.11ms    519.17ms    240.29ms    130.86ms    59.08%
time to 1st byte:    87.62ms       1.25s    818.02ms    250.87ms    68.85%
req/s           :       3.20      326.58       22.63       48.83    91.89%
=== h2load-writes ===
starting benchmark...
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2

finished in 5.00s, 3650.40 req/s, 161.64KB/s
requests: 18252 total, 19276 started, 18252 done, 18252 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 18252 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 808.21KB (827612) total, 641.67KB (657072) headers (space savings 40.98%), 0B (0) data
                     min         max         mean         sd        +/- sd
time for request:    41.94ms       1.71s    122.72ms    214.08ms    96.27%
time for connect:     2.54ms     54.04ms     21.41ms     13.71ms    63.28%
time to 1st byte:    72.43ms       1.67s    458.14ms    451.07ms    78.13%
req/s           :       1.60      110.39       28.51       38.68    78.91%
[info] CPU 344.3% | Mem 730MiB
[info]   edge: 241% 587MiB | cache: 18% 6MiB | authsvc: 37% 33MiB | server: 48% 104MiB

=== Best: 26721 req/s (CPU: 338.5%, Mem: 719MiB) ===
[info] saved results/production-stack/1024/sark-production.json
[info] skip: sark-production does not subscribe to unary-grpc
[info] skip: sark-production does not subscribe to unary-grpc-tls
[info] skip: sark-production does not subscribe to stream-grpc
[info] skip: sark-production does not subscribe to stream-grpc-tls
[info] skip: sark-production does not subscribe to echo-ws
[info] skip: sark-production 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/production-stack-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/production-stack-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536

@inq

inq commented Jun 29, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f sark-gateway

@github-actions

Copy link
Copy Markdown
Contributor

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

@inq

inq commented Jun 29, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark -f sark-gateway

@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: sark-gateway | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
gateway-64 512 12,288 371.7% 1.3GiB NEW NEW
gateway-64 1024 6,287 342.7% 2.4GiB NEW NEW
gateway-h3 64 10,009 242.2% 420MiB NEW NEW
gateway-h3 256 8,268 236.1% 1.4GiB NEW NEW
Full log

#12 [proxy 2/2] COPY Caddyfile /etc/caddy/Caddyfile
#12 CACHED

#13 [proxy] exporting to image
#13 exporting layers done
#13 exporting manifest sha256:7bd5c705e67df392440547a4c89b069d5750df7fc8f0ec6fe71998a72c653e2d 0.0s done
#13 exporting config sha256:104ab2bca264e6c94c037a12f0ab81e53d58ced52f8bc30c524da2b036c623d6 0.0s done
#13 ...

#14 [server build 1/5] FROM docker.io/library/rust:1.95-slim-bookworm@sha256:d7482085ff5b415f84dba5647ae71606650bdef00db7aeb69f4b3d170c3e4082
#14 resolve docker.io/library/rust:1.95-slim-bookworm@sha256:d7482085ff5b415f84dba5647ae71606650bdef00db7aeb69f4b3d170c3e4082 0.1s done
#14 DONE 0.1s

#15 [server stage-1 1/3] FROM docker.io/library/debian:bookworm-slim@sha256:4724b8cc51e33e398f0e2e15e18d5ec2851ff0c2280647e1310bc1642182655d
#15 resolve docker.io/library/debian:bookworm-slim@sha256:4724b8cc51e33e398f0e2e15e18d5ec2851ff0c2280647e1310bc1642182655d 0.1s done
#15 DONE 0.1s

#10 [server internal] load build context
#10 transferring context: 1.13kB done
#10 DONE 0.0s

#16 [server build 4/5] COPY . .
#16 CACHED

#17 [server build 2/5] RUN apt-get update     && apt-get install -y --no-install-recommends pkg-config libssl-dev protobuf-compiler     && rm -rf /var/lib/apt/lists/*
#17 CACHED

#18 [server build 5/5] RUN RUSTFLAGS="-C target-cpu=native" cargo build --release -p httparena-sark --bin "httparena-sark"
#18 CACHED

#19 [server stage-1 2/3] RUN apt-get update     && apt-get install -y --no-install-recommends ca-certificates     && rm -rf /var/lib/apt/lists/*
#19 CACHED

#20 [server build 3/5] WORKDIR /build
#20 CACHED

#21 [server stage-1 3/3] COPY --from=build /build/target/release/httparena-sark /server
#21 CACHED

#13 [proxy] exporting to image
#13 exporting attestation manifest sha256:0064c5900ad61b591c8e41ae424f13794d4ceef48e30ae16e38214adb61a8e5d 0.1s done
#13 exporting manifest list sha256:9b1835eb959e1ac32fd429eaa8dbcf26b1409343ac4932cc6d273fc58567c628
#13 exporting manifest list sha256:9b1835eb959e1ac32fd429eaa8dbcf26b1409343ac4932cc6d273fc58567c628 0.0s done
#13 naming to docker.io/library/httparena-sark-gateway-gateway-h3-proxy:latest 0.0s done
#13 unpacking to docker.io/library/httparena-sark-gateway-gateway-h3-proxy:latest 0.0s done
#13 DONE 0.3s

#22 [server] exporting to image
#22 exporting layers done
#22 exporting manifest sha256:3f083aed96286f796cb91860a138073bf062366dc3177ea55201cd1c6accb2d9 0.0s done
#22 exporting config sha256:841b217860c03a868cf7187b4183dc2b54f0ef8a6e4d69e35d2bb87d638e1baa 0.0s done
#22 exporting attestation manifest sha256:50a7d727062ea52789a8f95516285a02119887d0299c9c5378b83c2ef06ca559 0.1s done
#22 exporting manifest list sha256:8cf77120658b81c23a480368c7dcf7729a139ae8f636f5396f88a312713fb3c6
#22 exporting manifest list sha256:8cf77120658b81c23a480368c7dcf7729a139ae8f636f5396f88a312713fb3c6 0.0s done
#22 naming to docker.io/library/httparena-sark-gateway-gateway-h3-server:latest 0.0s done
#22 unpacking to docker.io/library/httparena-sark-gateway-gateway-h3-server:latest 0.0s done
#22 DONE 0.3s

#23 [proxy] resolving provenance for metadata file
#23 DONE 0.0s

#24 [server] resolving provenance for metadata file
#24 DONE 0.0s
 Image httparena-sark-gateway-gateway-h3-server Built 
 Image httparena-sark-gateway-gateway-h3-proxy Built 
 Container httparena-sark-gateway-gateway-h3-server-1 Creating 
 Container httparena-sark-gateway-gateway-h3-server-1 Created 
 Container httparena-sark-gateway-gateway-h3-proxy-1 Creating 
 Container httparena-sark-gateway-gateway-h3-proxy-1 Created 
 Container httparena-sark-gateway-gateway-h3-server-1 Starting 
 Container httparena-sark-gateway-gateway-h3-server-1 Started 
 Container httparena-sark-gateway-gateway-h3-proxy-1 Starting 
 Container httparena-sark-gateway-gateway-h3-proxy-1 Started 
[info] gateway containers: 2 (10ea18bfcc1c 2e3e838dbe18 )
[info] waiting for server...
[info] server ready

[run 1/3]
starting benchmark...
7Warm-up phase is over for thread #.
13.
36.
59.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Certificate: RSA 2048 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3

finished in 5.03s, 6829.40 req/s, 71.59MB/s
requests: 34147 total, 42339 started, 34147 done, 34138 succeeded, 9 failed, 0 errored, 0 timeout
status codes: 38321 2xx, 0 3xx, 9 4xx, 0 5xx
traffic: 357.94MB (375325981) total, 2.73MB (2864765) headers (space savings 55.18%), 354.97MB (372214278) data
UDP datagram: 58090 sent, 275395 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :    13.67ms       4.81s    691.58ms      2.46s      3.67s   906.07ms    695.04ms    87.30%
connect     :     3.76ms    939.60ms    169.59ms   404.86ms   700.36ms   193.45ms    138.22ms    70.70%
TTFB        :   173.38ms       1.63s    698.93ms      1.25s      1.55s   708.54ms    329.26ms    68.36%
req/s       :      15.80       57.19       25.49      40.80      48.40      26.67        7.13    72.27%
min RTT     :      561us    156.81ms     17.23ms    88.02ms   152.77ms    28.44ms     27.61ms    86.72%
smoothed RTT:    67.32ms    407.08ms    150.40ms   266.29ms   368.85ms   158.79ms     53.58ms    76.56%
packets sent:        131         390         229        307        357     228.91       46.91    67.97%
packets recv:        564        2538        1012       1717       2082    1077.76      340.09    70.31%
packets lost:          0           0           0          0          0       0.00        0.00   100.00%
GRO packets :          1          16           1         10         10       2.72        2.81    85.21%
[info] CPU 228.5% | Mem 837MiB
[info]   server: 28% 56MiB | proxy: 200% 781MiB

[run 2/3]
starting benchmark...
54Main benchmark duration is started for thread #.59
.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Certificate: RSA 2048 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3

41Stopped all clients for thread #56
. Stopping all clients.

finished in 5.03s, 7353.80 req/s, 74.70MB/s
requests: 36769 total, 44961 started, 36769 done, 36754 succeeded, 15 failed, 0 errored, 0 timeout
status codes: 41583 2xx, 0 3xx, 15 4xx, 0 5xx
traffic: 373.48MB (391620317) total, 2.95MB (3093130) headers (space savings 55.25%), 370.27MB (388261374) data
UDP datagram: 63612 sent, 288267 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :    24.38ms       4.89s    631.41ms      2.50s      3.68s   844.97ms    699.89ms    88.78%
connect     :     3.74ms    592.87ms    104.81ms   168.84ms   592.00ms   122.65ms     68.84ms    96.88%
TTFB        :    89.39ms       1.21s    408.03ms   920.73ms      1.11s   449.03ms    230.43ms    69.92%
req/s       :      18.00       53.60       27.80      42.80      47.59      28.72        6.75    69.53%
min RTT     :      119us    103.01ms     13.06ms    63.40ms    94.73ms    19.10ms     18.67ms    86.72%
smoothed RTT:    54.52ms    287.64ms    113.61ms   168.71ms   221.62ms   119.87ms     31.71ms    74.61%
packets sent:        143         421         245        349        408     250.48       52.16    68.36%
packets recv:        604        2327        1087       1749       1972    1128.04      301.72    69.14%
packets lost:          0           0           0          0          0       0.00        0.00   100.00%
GRO packets :          1          16           1         10         10       2.52        2.68    86.77%
[info] CPU 234.2% | Mem 1.1GiB
[info]   server: 34% 74MiB | proxy: 200% 1.0GiB

[run 3/3]
starting benchmark...
61.

.
42.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Certificate: RSA 2048 bits
Negotiated Group: x25519
Resumption: no
Application protocol: h3

48. Stopping all clients.
61. Stopping all clients.

finished in 5.02s, 7338.60 req/s, 74.44MB/s
requests: 36693 total, 44885 started, 36693 done, 36671 succeeded, 22 failed, 0 errored, 0 timeout
status codes: 41507 2xx, 0 3xx, 22 4xx, 0 5xx
traffic: 372.20MB (390275173) total, 2.94MB (3086890) headers (space savings 55.25%), 369.00MB (386923131) data
UDP datagram: 63826 sent, 286797 received
                 min         max         median     p95        p99        mean         sd        +/- sd
request     :    13.03ms       4.84s    632.01ms      2.49s      3.68s   845.63ms    692.31ms    88.63%
connect     :     3.80ms    380.87ms    130.21ms   343.36ms   372.02ms   143.66ms     70.65ms    80.08%
TTFB        :   125.91ms       1.25s    420.77ms   950.48ms      1.15s   443.32ms    223.94ms    75.00%
req/s       :      18.60       56.59       27.60      42.20      50.20      28.66        6.92    71.88%
min RTT     :      369us    132.25ms     12.93ms    70.59ms   101.48ms    24.04ms     23.37ms    82.81%
smoothed RTT:    48.88ms    293.01ms    123.00ms   189.80ms   236.24ms   128.03ms     34.50ms    74.22%
packets sent:        140         446         247        355        407     251.32       54.34    71.88%
packets recv:        654        2406        1062       1750       2122    1122.30      309.23    72.27%
packets lost:          0           0           0          0          0       0.00        0.00   100.00%
GRO packets :          1          14           1         10         10       2.54        2.70    86.76%
[info] CPU 236.1% | Mem 1.4GiB
[info]   server: 36% 80MiB | proxy: 200% 1.3GiB

=== Best: 8268 req/s (CPU: 236.1%, Mem: 1.4GiB) ===
[info] saved results/gateway-h3/256/sark-gateway.json
[info] skip: sark-gateway does not subscribe to production-stack
[info] skip: sark-gateway does not subscribe to unary-grpc
[info] skip: sark-gateway does not subscribe to unary-grpc-tls
[info] skip: sark-gateway does not subscribe to stream-grpc
[info] skip: sark-gateway does not subscribe to stream-grpc-tls
[info] skip: sark-gateway does not subscribe to echo-ws
[info] skip: sark-gateway 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/gateway-64-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/gateway-64-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/gateway-h3-256.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/gateway-h3-64.json
[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