Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: Benchmark against google-quiche #2218

Merged
merged 37 commits into from
Nov 14, 2024

Conversation

larseggert
Copy link
Collaborator

No description provided.

Copy link

codecov bot commented Nov 5, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 95.39%. Comparing base (f11ce06) to head (5b792f0).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2218   +/-   ##
=======================================
  Coverage   95.39%   95.39%           
=======================================
  Files         112      112           
  Lines       36449    36449           
=======================================
+ Hits        34769    34770    +1     
+ Misses       1680     1679    -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link

github-actions bot commented Nov 5, 2024

Failed Interop Tests

QUIC Interop Runner, client vs. server

neqo-latest as client

neqo-latest as server

All results

Succeeded Interop Tests

QUIC Interop Runner, client vs. server

neqo-latest as client

neqo-latest as server

Unsupported Interop Tests

QUIC Interop Runner, client vs. server

neqo-latest as client

neqo-latest as server

@larseggert larseggert marked this pull request as ready for review November 6, 2024 13:35
Copy link

github-actions bot commented Nov 11, 2024

Benchmark results

Performance differences relative to 978aa4e.

coalesce_acked_from_zero 1+1 entries: No change in performance detected.
       time:   [98.643 ns 98.925 ns 99.217 ns]
       change: [-0.5343% -0.0809% +0.3642%] (p = 0.73 > 0.05)

Found 12 outliers among 100 measurements (12.00%)
10 (10.00%) high mild
2 (2.00%) high severe

coalesce_acked_from_zero 3+1 entries: No change in performance detected.
       time:   [117.04 ns 117.39 ns 117.77 ns]
       change: [-0.3343% +0.1598% +0.6820%] (p = 0.54 > 0.05)

Found 19 outliers among 100 measurements (19.00%)
2 (2.00%) low mild
1 (1.00%) high mild
16 (16.00%) high severe

coalesce_acked_from_zero 10+1 entries: No change in performance detected.
       time:   [116.62 ns 117.15 ns 117.77 ns]
       change: [-0.9708% -0.1619% +0.5509%] (p = 0.70 > 0.05)

Found 14 outliers among 100 measurements (14.00%)
6 (6.00%) low severe
8 (8.00%) high severe

coalesce_acked_from_zero 1000+1 entries: No change in performance detected.
       time:   [97.227 ns 97.369 ns 97.535 ns]
       change: [-1.1854% -0.2263% +0.7491%] (p = 0.68 > 0.05)

Found 11 outliers among 100 measurements (11.00%)
4 (4.00%) high mild
7 (7.00%) high severe

RxStreamOrderer::inbound_frame(): No change in performance detected.
       time:   [112.30 ms 112.44 ms 112.66 ms]
       change: [-0.2098% +0.0251% +0.2825%] (p = 0.86 > 0.05)

Found 19 outliers among 100 measurements (19.00%)
8 (8.00%) low mild
10 (10.00%) high mild
1 (1.00%) high severe

transfer/pacing-false/varying-seeds: No change in performance detected.
       time:   [27.046 ms 28.128 ms 29.201 ms]
       change: [-3.5214% +1.6503% +7.6242%] (p = 0.56 > 0.05)
transfer/pacing-true/varying-seeds: Change within noise threshold.
       time:   [33.187 ms 34.610 ms 36.055 ms]
       change: [-12.740% -7.8303% -1.9586%] (p = 0.01 < 0.05)

Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild

transfer/pacing-false/same-seed: No change in performance detected.
       time:   [26.194 ms 27.140 ms 28.089 ms]
       change: [-1.1497% +3.5901% +8.4123%] (p = 0.14 > 0.05)
transfer/pacing-true/same-seed: No change in performance detected.
       time:   [42.033 ms 44.004 ms 45.983 ms]
       change: [-4.9051% +1.8604% +9.0924%] (p = 0.60 > 0.05)
1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client:
       time:   [912.04 ms 918.95 ms 925.93 ms]
       thrpt:  [108.00 MiB/s 108.82 MiB/s 109.64 MiB/s]
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild
1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client:
       time:   [317.17 ms 320.25 ms 323.37 ms]
       thrpt:  [30.924 Kelem/s 31.225 Kelem/s 31.528 Kelem/s]
1-conn/1-1b-resp/mtu-1504 (aka. HPS)/client:
       time:   [33.484 ms 33.688 ms 33.906 ms]
       thrpt:  [29.494  elem/s 29.684  elem/s 29.865  elem/s]
Found 4 outliers among 100 measurements (4.00%)
  3 (3.00%) high mild
  1 (1.00%) high severe
1-conn/1-100mb-resp/mtu-1504 (aka. Upload)/client:
       time:   [1.6338 s 1.6506 s 1.6678 s]
       thrpt:  [59.959 MiB/s 60.585 MiB/s 61.206 MiB/s]
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild

Client/server transfer results

Transfer of 33554432 bytes over loopback.

Client Server CC Pacing MTU Mean [ms] Min [ms] Max [ms]
gquiche gquiche 1504 563.2 ± 67.7 515.4 728.5
neqo gquiche reno on 1504 819.8 ± 80.0 762.5 974.0
neqo gquiche reno 1504 775.5 ± 9.7 764.0 794.6
neqo gquiche cubic on 1504 807.2 ± 70.6 719.6 940.4
neqo gquiche cubic 1504 760.3 ± 22.8 728.0 812.9
msquic msquic 1504 184.5 ± 91.2 98.2 355.5
neqo msquic reno on 1504 250.9 ± 73.6 209.0 432.4
neqo msquic reno 1504 241.2 ± 70.5 204.8 449.8
neqo msquic cubic on 1504 264.2 ± 91.6 211.8 457.4
neqo msquic cubic 1504 273.6 ± 96.0 211.8 458.4
gquiche neqo reno on 1504 751.0 ± 92.5 611.1 885.9
gquiche neqo reno 1504 793.3 ± 174.6 619.7 1177.1
gquiche neqo cubic on 1504 753.0 ± 91.7 632.2 935.7
gquiche neqo cubic 1504 792.8 ± 78.2 661.5 925.5
msquic neqo reno on 1504 750.1 ± 61.2 692.2 914.5
msquic neqo reno 1504 706.0 ± 12.6 692.6 733.8
msquic neqo cubic on 1504 736.9 ± 21.8 709.2 779.8
msquic neqo cubic 1504 722.6 ± 11.3 708.9 744.8
neqo neqo reno on 1504 685.3 ± 56.8 640.9 832.6
neqo neqo reno 1504 657.7 ± 16.4 616.6 673.9
neqo neqo cubic on 1504 650.3 ± 37.9 628.6 755.1
neqo neqo cubic 1504 635.7 ± 18.5 616.4 680.0

⬇️ Download logs

Copy link
Collaborator

@mxinden mxinden left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

neqo to neqo with MTU of 1504 client/server transfer seems to have increased in this pull request. Is this noise or a regression?

Compare e.g. with #2216 or #2225.

Otherwise looks good to me. Ready to merge.

Comment on lines 138 to 163
for mtu in 1504 65536; do
for mtu in 1504; do # We used to measure 65536 here, too, but that's somewhat unrealistic.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about removing the loop, given that it iterates at most once. Would reduce the level of indentation.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can do. Was wondering if we wanted to put it back at some point.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should I remove the 65536 MTU everywhere? Would cut down the time on benches.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume we will focus on Internet paths for now, thus I suggest removing 64k MTU entirely.

@larseggert
Copy link
Collaborator Author

neqo to neqo with MTU of 1504 client/server transfer seems to have increased in this pull request. Is this noise or a regression?

I don't know.

@mxinden
Copy link
Collaborator

mxinden commented Nov 13, 2024

ja4 workflow

Bad push @larseggert?

@larseggert larseggert merged commit bcc16fc into mozilla:main Nov 14, 2024
60 of 61 checks passed
@larseggert larseggert deleted the ci-google-quiche branch November 15, 2024 12:25
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