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

Add some instructions for doing upload test locally #1529

Merged
merged 1 commit into from
Jan 17, 2024

Conversation

KershawChang
Copy link
Collaborator

No description provided.

@codecov-commenter
Copy link

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (d1639a4) 87.61% compared to head (91e783a) 87.58%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1529      +/-   ##
==========================================
- Coverage   87.61%   87.58%   -0.03%     
==========================================
  Files         117      117              
  Lines       37848    37608     -240     
==========================================
- Hits        33160    32939     -221     
+ Misses       4688     4669      -19     

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

Comment on lines 11 to 15
This can be done by setting the `RUST_LOG` environment variable to `neqo_transport=info`.
For example, the command below starts neqo-client and uploads 8MB of content to the server.
```
RUST_LOG=neqo_transport=info ./target/release/neqo-client http://127.0.0.1:4433/ --test upload --upload-size 8388608 &>upload.log
```
Copy link
Collaborator

Choose a reason for hiding this comment

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

What is the performance impact of enabling logging? Also, is a debug build OK here or should it be an optimized release build?

Copy link
Collaborator

Choose a reason for hiding this comment

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

Ideally, we'd want to take a packet trace and SSLKEYLOG during a performance run, decrypt the trace via Wireshark, conveft it to - say - JSON, and extract the information to plot out of that, rather than slowing down the endpoints by logging there.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

The performance impact of logging seems to be negligible on my machine, but I agree that using Wireshark is the best way. I'll try to create a shell script for this.

However, I think it's worth to note that the order of packets captured by Wireshark might be different than the log's.
For example, the order of packets below is sending packets 6-13, and then receiving ACKs, then sending 14-21.
Screenshot 2023-12-21 at 9 01 45 PM

But the log shows differently.

0s 60ms INFO packet_sent this=0x126f17e80, pn=6, ps=1357
0s 61ms INFO packet_sent this=0x126f17e80, pn=7, ps=1357
0s 63ms INFO packet_sent this=0x126f17e80, pn=8, ps=1357
0s 64ms INFO packet_sent this=0x126f17e80, pn=9, ps=1357
0s 66ms INFO packet_sent this=0x126f17e80, pn=10, ps=1357
0s 67ms INFO packet_sent this=0x126f17e80, pn=12, ps=1357
0s 67ms INFO packet_sent this=0x126f17e80, pn=13, ps=1157

0s 82ms INFO [Client ef3b7d4f9c65c5030cbba757] Rx ACK space=ap, ranges=[0..=3]
0s 82ms INFO packet_acked this=0x126f17e80, pn=3, ps=1357, ignored=0, lost=0
0s 82ms INFO packet_acked this=0x126f17e80, pn=2, ps=1357, ignored=0, lost=0


0s 82ms INFO packet_sent this=0x126f17e80, pn=14, ps=1357
0s 82ms INFO packet_sent this=0x126f17e80, pn=15, ps=1357
0s 82ms INFO packet_sent this=0x126f17e80, pn=16, ps=1357
0s 82ms INFO packet_sent this=0x126f17e80, pn=17, ps=1357

0s 82ms INFO [Client ef3b7d4f9c65c5030cbba757] Rx ACK space=ap, ranges=[0..=6]
0s 82ms INFO packet_acked this=0x126f17e80, pn=6, ps=1357, ignored=0, lost=0
0s 82ms INFO packet_acked this=0x126f17e80, pn=5, ps=33, ignored=1, lost=0
0s 82ms INFO packet_acked this=0x126f17e80, pn=4, ps=1357, ignored=0, lost=0

0s 83ms INFO packet_sent this=0x126f17e80, pn=18, ps=1357
0s 84ms INFO packet_sent this=0x126f17e80, pn=19, ps=1357
0s 85ms INFO packet_sent this=0x126f17e80, pn=20, ps=1357
0s 85ms INFO packet_sent this=0x126f17e80, pn=21, ps=1357

0s 86ms INFO [Client ef3b7d4f9c65c5030cbba757] Rx ACK space=ap, ranges=[0..=8]
0s 87ms INFO packet_acked this=0x126f17e80, pn=8, ps=1357, ignored=0, lost=0
0s 87ms INFO packet_acked this=0x126f17e80, pn=7, ps=1357, ignored=0, lost=0

Copy link
Collaborator

@larseggert larseggert Dec 21, 2023

Choose a reason for hiding this comment

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

Wireshark will show you what on the wire :-) What the logs show depend on in which order neqo pushes and pulls data from the sockets, which depends on its internal scheduling logic. Both are useful to understand things.

@larseggert
Copy link
Collaborator

Also wonder if we want to call the directory simply test, since we might want to add other (e.g., conformance) tests and not just performance tests.

mb added a commit to mb/neqo that referenced this pull request Jan 3, 2024
This script can visualize MOZ_LOGs
* 'HTTP/3 upload speed' in `about:logging`
* log modules: `timestamp,neqo_transport::*:3`

Using the directory `performance-test` from mozilla#1529
Moving the script from https://github.com/mb/scripts/blob/5a72b00cda615a9ea940f0f93efeacb422807ec0/visualize/mozlog-neqo-cwnd.py
Example output: https://bugzilla.mozilla.org/show_bug.cgi?id=1852924#c36
@KershawChang KershawChang force-pushed the add_upload_instructions branch from 91e783a to f808651 Compare January 5, 2024 09:41
@larseggert larseggert merged commit abe45df into mozilla:main Jan 17, 2024
9 checks passed
mb added a commit to mb/neqo that referenced this pull request Feb 7, 2024
This script can visualize MOZ_LOGs
* 'HTTP/3 upload speed' in `about:logging`
* log modules: `timestamp,neqo_transport::*:3`

Using the directory `performance-test` from mozilla#1529
Moving the script from https://github.com/mb/scripts/blob/5a72b00cda615a9ea940f0f93efeacb422807ec0/visualize/mozlog-neqo-cwnd.py
Example output: https://bugzilla.mozilla.org/show_bug.cgi?id=1852924#c36
mb added a commit to mb/neqo that referenced this pull request Feb 7, 2024
This script can visualize MOZ_LOGs
* 'HTTP/3 upload speed' in `about:logging`
* log modules: `timestamp,neqo_transport::*:3`

Using the directory `performance-test` from mozilla#1529
Moving the script from https://github.com/mb/scripts/blob/5a72b00cda615a9ea940f0f93efeacb422807ec0/visualize/mozlog-neqo-cwnd.py
Example output: https://bugzilla.mozilla.org/show_bug.cgi?id=1852924#c36
mb added a commit to mb/neqo that referenced this pull request Feb 7, 2024
This script can visualize MOZ_LOGs
* 'HTTP/3 upload speed' in `about:logging`
* log modules: `timestamp,neqo_transport::*:3`

Using the directory `performance-test` from mozilla#1529
Moving the script from https://github.com/mb/scripts/blob/5a72b00cda615a9ea940f0f93efeacb422807ec0/visualize/mozlog-neqo-cwnd.py
Example output: https://bugzilla.mozilla.org/show_bug.cgi?id=1852924#c36
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