Skip to content

bench: drive HTTP/3 with h2load built with ngtcp2/nghttp3, not h3x - #279

Merged
MDA2AV merged 1 commit into
mainfrom
bench/h3-h2load
Oct 4, 2026
Merged

MDA2AV merged 1 commit into
mainfrom
bench/h3-h2load

Conversation

@MDA2AV

@MDA2AV MDA2AV commented Oct 4, 2026

Copy link
Copy Markdown
Owner

h3x reports completed requests over its whole run, and the run waits ~30 s on any request that never finishes: a dozen stuck streams made a server doing ~300K req/s read as ~50K. bench/lib.sh now drives HTTP/3 with an h2load built with ngtcp2/nghttp3 (H2LOAD_H3, default ~/h3x/bench/h2load - the distro's h2load 1.59 has no HTTP/3), whose rate covers the run it reports.

any.sh discards a run whose h2load requests failed, errored or timed out, or came back non-2xx - which the h2c/h2 rows never checked either. h2load counts a request killed with its connection as neither failed nor errored, only not done, so a run is also discarded when nothing completed or a connection completed nothing. And h2load's 0.00 req/s no longer slips past the zero check, which compared strings.

What it still cannot see is a stream left open when a duration run ends - that is simply in flight. The hangs fixed in #278 never showed in h2load; those are for the tests (or h3x, which waits on them).

Checked

bench/results/latest.json is untouched.

h3x reports completed requests over its whole run, and the run waits ~30 s on any request
that never finishes: a dozen stuck streams made a server doing ~300k req/s read as ~50k.
h2load's rate covers the run it reports. H2LOAD_H3 points at it (default
~/h3x/bench/h2load). any.sh also discards a run whose h2load requests failed, errored or
timed out, or came back non-2xx - which the h2c/h2 rows never checked.

h2load counts a request killed with its connection as neither failed nor errored, only not
done, so a run is also discarded when nothing completed or a connection completed nothing:
32 one-MiB responses per connection, every connection closed at the send backstop, read as
an unsaturated 0.00 req/s rather than a failure. That 0.00 also slipped past the zero check,
which compared strings.
@MDA2AV
MDA2AV merged commit 78e5d3c into main Oct 4, 2026
1 check passed
@MDA2AV MDA2AV mentioned this pull request Oct 4, 2026
@MDA2AV
MDA2AV deleted the bench/h3-h2load branch October 5, 2026 15:28
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