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

Why is there a large throughtput difference between upload and download tests? #2538

Open
larseggert opened this issue Mar 28, 2025 · 4 comments · May be fixed by #2546
Open

Why is there a large throughtput difference between upload and download tests? #2538

larseggert opened this issue Mar 28, 2025 · 4 comments · May be fixed by #2546

Comments

@larseggert
Copy link
Collaborator

For example, in https://github.com/mozilla/neqo/actions/runs/14130968402/attempts/1#summary-39591639225:

1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client
                        time:   [445.07 ms 449.70 ms 454.30 ms]
                        thrpt:  [220.12 MiB/s 222.37 MiB/s 224.69 MiB/s]

vs.

1-conn/1-100mb-resp/mtu-1504 (aka. Upload)/client
                        time:   [1.6145 s 1.6388 s 1.6636 s]
                        thrpt:  [60.110 MiB/s 61.022 MiB/s 61.938 MiB/s]
@martinthomson
Copy link
Member

Why is the latter called "100mb-resp" and not "100mb-req" ?

@larseggert
Copy link
Collaborator Author

My guess is copy&paste error - @mxinden?

mxinden added a commit to mxinden/neqo that referenced this issue Mar 31, 2025
The `neqo-bin` Download benchmark has the client do a single HTTP GET to
the server, requesting the number of bytes to download encoded in the
URL path, i.e. `http://[::1]:12345/104857600`.

The `neqo-bin` Upload benchmark has the client do a single HTTP POST to
the server, sending `104857600` random bytes along with it. That said,
previously it would also request the same amount of bytes to download
from the server.

This explains the Download / Upload difference seen in
mozilla#2538.

Fixed in this commit.
@mxinden
Copy link
Collaborator

mxinden commented Mar 31, 2025

For what it is worth, here is a Flamegraph of a local Upload benchmark run. I have not had any luck identifying any bottleneck thus far.

Image

@larseggert
Copy link
Collaborator Author

How does that flamegraph compare to a download one?

Also, have you looked at the flamegraphs generated on the bencher?

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 a pull request may close this issue.

3 participants