Skip to content
This repository was archived by the owner on Aug 11, 2020. It is now read-only.

[WIP] benchmark: add basic QUIC benchmark #182

Draft
wants to merge 110 commits into
base: master
Choose a base branch
from
Draft

[WIP] benchmark: add basic QUIC benchmark #182

wants to merge 110 commits into from

Conversation

addaleax
Copy link
Member

This is currently WIP, because it turns out that the retransmission timing is currently impractical for benchmarking (about 2/3 of the time are just spent waiting for the retransmission timer).

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
  • commit message follows commit guidelines

@jasnell
Copy link
Member

jasnell commented Oct 16, 2019

Note: I believe @tatsuhiro-t is either planning on adding QUIC support to h2load or has already done so. If not, I definitely think I may open a PR to do so as that would make benchmarking QUIC significantly easier

@tatsuhiro-t
Copy link

Check out https://github.com/nghttp2/nghttp2/tree/quic#running-h2load-against-http3-server
It is h2load with HTTP/3 support.

@jasnell
Copy link
Member

jasnell commented Oct 17, 2019

Thank you @tatsuhiro-t :-)

addaleax and others added 27 commits December 11, 2019 12:33
PR-URL: #145
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #150
Reviewed-By: James M Snell <jasnell@gmail.com>
Allow using the handle more directly for I/O in other parts of
the codebase.

PR-URL: #165
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Co-authored-by: Anna Henningsen <anna@addaleax.net>
Co-authored-by: Daniel Bevenius <daniel.bevenius@gmail.com>
Co-authored-by: gengjiawen <technicalcute@gmail.com>
Co-authored-by: James M Snell <jasnell@gmail.com>
Co-authored-by: Lucas Pardue <lucaspardue.24.7@gmail.com>
Co-authored-by: Ouyang Yadong <oyydoibh@gmail.com>
Co-authored-by: Juan José Arboleda <soyjuanarbol@gmail.com>
Co-authored-by: Trivikram Kamat <trivikr.dev@gmail.com>
Ported from
tatsuhiro-t/openssl@920a331

PR-URL: #6
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Ported from
tatsuhiro-t/openssl@920a331

PR-URL: #6
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Fixes: #59
PR-URL: #145
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #147
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Introduced in aa99a6a.

PR-URL: #149
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #149
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #154
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
PR-URL: #153
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
PR-URL: #152
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Previously, if the expiry timestamp was in the future by less
than 1ms, the retransmission timer would not have been scheduled.

(This also removes an unused line from the test that this
problem made flaky.)

PR-URL: #157
Reviewed-By: James M Snell <jasnell@gmail.com>
If we set `preferredAddressPolicy` to `accept` on `QuicClientSession`
but receives an invalid preferred address, e.g. we don't define
`preferredAddress` on the server, the `QuicClientSession` should still
work. Before this PR, the included test will cause segmetation fault.

PR-URL: #155
Reviewed-By: James M Snell <jasnell@gmail.com>
It would be better to add a test to ensure that the timeout is
greater than the triple PTO if we can get the PTO.

PR-URL: #160
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #159
Reviewed-By: James M Snell <jasnell@gmail.com>
This reverts commit 170c5d0.

PR-URL: #138
Reviewed-By: Anna Henningsen <anna@addaleax.net>
This reverts commit ecda77c.

PR-URL: #138
Reviewed-By: Anna Henningsen <anna@addaleax.net>
PR-URL: #138
Reviewed-By: Anna Henningsen <anna@addaleax.net>
PR-URL: #138
Reviewed-By: Anna Henningsen <anna@addaleax.net>
PR-URL: #138
Reviewed-By: Anna Henningsen <anna@addaleax.net>
This commit will need to be submitted upstream then backed out
once it lands and we can update

PR-URL: #138
Reviewed-By: Anna Henningsen <anna@addaleax.net>
PR-URL: #138
Reviewed-By: Anna Henningsen <anna@addaleax.net>
The recent commits have broken the build, tests, and linting.

One cctest is not fixed but rather disabled here.

PR-URL: #162
After ngtcp2 being updated, `ngtcp2_conn_get_idle_timeout` is renamed as
`ngtcp2_conn_get_idle_expiry` which returns `ngtcp2_tstamp` instead of
`ngtcp2_duration`.

Refs: https://github.com/ngtcp2/ngtcp2/blob/6f40668cdce7db7c043d3a80c07f379841d8c51e/lib/ngtcp2_conn.c#L8604
PR-URL: #166
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Fixes: #75
PR-URL: #150
Reviewed-By: James M Snell <jasnell@gmail.com>
jasnell and others added 13 commits December 11, 2019 13:59
Count the number of times sending stream data is blocked by
flow control

PR-URL: #213
Reviewed-By: Anna Henningsen <anna@addaleax.net>
PR-URL: #213
Reviewed-By: Anna Henningsen <anna@addaleax.net>
PR-URL: #213
Reviewed-By: Anna Henningsen <anna@addaleax.net>
PR-URL: #213
Reviewed-By: Anna Henningsen <anna@addaleax.net>
PR-URL: #213
Reviewed-By: Anna Henningsen <anna@addaleax.net>
PR-URL: #216
Reviewed-By: Anna Henningsen <anna@addaleax.net>
PR-URL: #216
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Generate stateless reset token cryptographically

Fixes: #62
PR-URL: #215
Reviewed-By: Anna Henningsen <anna@addaleax.net>
PR-URL: #217
Reviewed-By: Anna Henningsen <anna@addaleax.net>
PR-URL: #217
Reviewed-By: Anna Henningsen <anna@addaleax.net>
PR-URL: #217
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Currently the doc target fails and this commit attempts for fix these
errors.

PR-URL: #221
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
PR-URL: #224
Reviewed-By: Anna Henningsen <anna@addaleax.net>
@jasnell
Copy link
Member

jasnell commented Dec 13, 2019

Heads up, this will need to be rebased

@jasnell jasnell force-pushed the master branch 3 times, most recently from 76d2afc to b69367d Compare February 13, 2020 19:39
@jasnell jasnell force-pushed the master branch 4 times, most recently from 928c50e to 08796cc Compare March 17, 2020 16:23
@jasnell jasnell force-pushed the master branch 2 times, most recently from 78e9941 to cee2e5d Compare March 24, 2020 01:14
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants