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: Run benchmarks with Ethernet and max MTUs #2183

Merged
merged 11 commits into from
Oct 18, 2024

Conversation

larseggert
Copy link
Collaborator

No description provided.

Copy link

codecov bot commented Oct 15, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 95.39%. Comparing base (5d53446) to head (d9b0464).
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2183   +/-   ##
=======================================
  Coverage   95.39%   95.39%           
=======================================
  Files         112      112           
  Lines       36373    36373           
=======================================
  Hits        34697    34697           
  Misses       1676     1676           

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

Copy link

github-actions bot commented Oct 15, 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

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.

apart from msquic failures, looks good to me. Thanks for tackling this so quickly!

Copy link

github-actions bot commented Oct 18, 2024

Benchmark results

Performance differences relative to 5d53446.

coalesce_acked_from_zero 1+1 entries: No change in performance detected.
       time:   [99.427 ns 99.723 ns 100.03 ns]
       change: [-0.1628% +0.2891% +0.6946%] (p = 0.19 > 0.05)

Found 12 outliers among 100 measurements (12.00%)
9 (9.00%) high mild
3 (3.00%) high severe

coalesce_acked_from_zero 3+1 entries: No change in performance detected.
       time:   [117.72 ns 118.09 ns 118.49 ns]
       change: [-0.2594% +0.4170% +0.9909%] (p = 0.20 > 0.05)

Found 16 outliers among 100 measurements (16.00%)
4 (4.00%) high mild
12 (12.00%) high severe

coalesce_acked_from_zero 10+1 entries: Change within noise threshold.
       time:   [117.02 ns 117.18 ns 117.48 ns]
       change: [+0.1757% +0.5170% +0.7762%] (p = 0.00 < 0.05)

Found 6 outliers among 100 measurements (6.00%)
1 (1.00%) low severe
2 (2.00%) low mild
1 (1.00%) high mild
2 (2.00%) high severe

coalesce_acked_from_zero 1000+1 entries: Change within noise threshold.
       time:   [98.463 ns 98.609 ns 98.775 ns]
       change: [+0.1056% +0.9109% +1.7502%] (p = 0.02 < 0.05)

Found 11 outliers among 100 measurements (11.00%)
6 (6.00%) high mild
5 (5.00%) high severe

RxStreamOrderer::inbound_frame(): Change within noise threshold.
       time:   [111.34 ms 111.39 ms 111.44 ms]
       change: [-0.8531% -0.7807% -0.7114%] (p = 0.00 < 0.05)

Found 17 outliers among 100 measurements (17.00%)
7 (7.00%) low mild
10 (10.00%) high mild

transfer/pacing-false/varying-seeds: No change in performance detected.
       time:   [25.773 ms 26.783 ms 27.817 ms]
       change: [-6.6224% -1.6982% +3.3100%] (p = 0.51 > 0.05)

Found 7 outliers among 100 measurements (7.00%)
2 (2.00%) low mild
5 (5.00%) high mild

transfer/pacing-true/varying-seeds: No change in performance detected.
       time:   [34.655 ms 36.281 ms 37.912 ms]
       change: [-3.4768% +2.6763% +9.3032%] (p = 0.42 > 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:   [25.083 ms 25.812 ms 26.537 ms]
       change: [-5.6425% -1.9667% +1.8305%] (p = 0.31 > 0.05)

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

transfer/pacing-true/same-seed: No change in performance detected.
       time:   [40.973 ms 42.931 ms 44.925 ms]
       change: [-6.3326% +0.0162% +6.6075%] (p = 0.99 > 0.05)
1-conn/1-100mb-resp/mtu-1500 (aka. Download)/client:
       time:   [892.33 ms 901.06 ms 909.89 ms]
       thrpt:  [109.90 MiB/s 110.98 MiB/s 112.07 MiB/s]
1-conn/10_000-parallel-1b-resp/mtu-1500 (aka. RPS)/client:
       time:   [311.42 ms 314.39 ms 317.43 ms]
       thrpt:  [31.503 Kelem/s 31.808 Kelem/s 32.111 Kelem/s]
1-conn/1-1b-resp/mtu-1500 (aka. HPS)/client:
       time:   [33.555 ms 33.763 ms 33.987 ms]
       thrpt:  [29.423  elem/s 29.618  elem/s 29.802  elem/s]
Found 6 outliers among 100 measurements (6.00%)
  5 (5.00%) high mild
  1 (1.00%) high severe
1-conn/1-100mb-resp/mtu-65536 (aka. Download)/client:
       time:   [112.62 ms 113.23 ms 113.81 ms]
       thrpt:  [878.67 MiB/s 883.16 MiB/s 887.91 MiB/s]
Found 3 outliers among 100 measurements (3.00%)
  3 (3.00%) low mild
1-conn/10_000-parallel-1b-resp/mtu-65536 (aka. RPS)/client:
       time:   [314.15 ms 317.92 ms 321.74 ms]
       thrpt:  [31.081 Kelem/s 31.455 Kelem/s 31.832 Kelem/s]
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild
1-conn/1-1b-resp/mtu-65536 (aka. HPS)/client:
       time:   [33.810 ms 34.008 ms 34.220 ms]
       thrpt:  [29.223  elem/s 29.405  elem/s 29.577  elem/s]
Found 6 outliers among 100 measurements (6.00%)
  1 (1.00%) low mild
  3 (3.00%) high mild
  2 (2.00%) high severe

Client/server transfer results

Transfer of 33554432 bytes over loopback.

Client Server CC Pacing MTU Mean [ms] Min [ms] Max [ms] Relative
msquic msquic 1504 198.1 ± 110.3 100.3 436.8 1.00
neqo msquic reno on 1504 242.6 ± 68.5 209.3 457.7 1.00
neqo msquic reno 1504 256.1 ± 78.6 213.7 464.6 1.00
neqo msquic cubic on 1504 248.7 ± 65.7 216.3 440.7 1.00
neqo msquic cubic 1504 296.8 ± 100.1 217.1 432.5 1.00
msquic neqo reno on 1504 689.6 ± 9.6 675.7 701.9 1.00
msquic neqo reno 1504 736.3 ± 99.0 662.0 945.2 1.00
msquic neqo cubic on 1504 704.8 ± 22.1 669.6 737.4 1.00
msquic neqo cubic 1504 755.2 ± 147.7 672.0 1136.9 1.00
neqo neqo reno on 1504 429.9 ± 12.4 412.1 450.3 1.00
neqo neqo reno 1504 432.6 ± 9.7 418.6 451.4 1.00
neqo neqo cubic on 1504 457.7 ± 59.2 419.6 590.3 1.00
neqo neqo cubic 1504 416.5 ± 16.5 385.8 443.6 1.00
msquic msquic 65536 201.1 ± 122.4 91.6 426.1 1.00
neqo msquic reno on 65536 226.0 ± 12.0 205.3 245.4 1.00
neqo msquic reno 65536 243.2 ± 62.9 214.5 439.1 1.00
neqo msquic cubic on 65536 291.0 ± 91.9 211.9 464.1 1.00
neqo msquic cubic 65536 258.7 ± 76.4 207.0 428.3 1.00
msquic neqo reno on 65536 171.9 ± 102.7 86.5 361.4 1.00
msquic neqo reno 65536 143.9 ± 72.0 87.7 322.5 1.00
msquic neqo cubic on 65536 156.0 ± 93.4 82.7 354.6 1.00
msquic neqo cubic 65536 201.2 ± 127.3 93.2 531.6 1.00
neqo neqo reno on 65536 224.5 ± 130.0 139.9 634.0 1.00
neqo neqo reno 65536 218.1 ± 93.3 133.9 372.9 1.00
neqo neqo cubic on 65536 235.2 ± 167.1 132.1 639.2 1.00
neqo neqo cubic 65536 224.2 ± 136.1 127.0 574.3 1.00

⬇️ Download logs

@larseggert larseggert enabled auto-merge October 18, 2024 14:30
@larseggert larseggert added this pull request to the merge queue Oct 18, 2024
Merged via the queue into mozilla:main with commit 2b64d75 Oct 18, 2024
63 of 69 checks passed
@larseggert larseggert deleted the ci-bench-multiple-mtu branch October 18, 2024 14:51
cat step.md >> steps.md
# Sanity check the size of the last retrieved file.
[ "$(wc -c <"$SIZE")" -eq "$SIZE" ] || exit 1
# See https://github.com/microsoft/msquic/issues/4618#issuecomment-2422611592
Copy link
Member

Choose a reason for hiding this comment

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

Why is this giant thing not a shell script?

}

fn benchmark_transfer_fixed(c: &mut Criterion) {
benchmark_transfer(
c,
"same-seed",
&Some("62df6933ba1f543cece01db8f27fb2025529b27f93df39e19f006e1db3b8c843"),
Some(&"62df6933ba1f543cece01db8f27fb2025529b27f93df39e19f006e1db3b8c843"),
Copy link
Member

Choose a reason for hiding this comment

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

So you are passing &&str and changing the signature to &impl AsRef? That seems a bit "wat" to me.

impl AsRef<str> matches String and &str. Why does it need an extra &? That only reduces ergonomics.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Clippy wants it

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.

3 participants