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

Performance numbers? #124

Closed
psantosl opened this issue Apr 25, 2020 · 5 comments
Closed

Performance numbers? #124

psantosl opened this issue Apr 25, 2020 · 5 comments

Comments

@psantosl
Copy link

Hi,

We'd like to develop a C# wrapper on top of mvfst. Before doing that, we'd like to better understand mvfst performance. Are there any performance figure available? How mvfst compare with TCP and in which scenarios?

Thanks!

@mjoras
Copy link
Contributor

mjoras commented Apr 26, 2020

Hello!

What kind of performance numbers are you interested in? Single stream continuous throughput?

We have a tool for this in quic/tools, called "tperf". The defaults are not great though, and it needs some tuning to get right.

I can tell you that in good network conditions on modern Linux, mvfst can achieve > 3Gbps of single stream throughput on commodity server hardware on a single CPU thread.

When used as the transport for HTTP/3, it is not less performant than TCP + HTTP/2, albeit at a higher per-transaction CPU cost.

@psantosl
Copy link
Author

Thanks!

Yes, I'd like to understand how it compares to TCP under different scenarios. We'd like to use mvfst as our transport (optional) in our software, and that's why. So, any numbers comparing will be great :)

We have a tool for this in quic/tools, called "tperf". The defaults are not great though, and it needs some tuning to get right.

Any hints on how to use this?

@yangchi
Copy link
Contributor

yangchi commented May 22, 2020

Example:

# Server:
$BUILD_DIR/tperf -congestion=none -gso true --max_cwnd_mss=4294967295 --num_streams=10 &

# Client:
$BUILD_DIR/tperf -mode client -congestion=newreno  -window 256000 -duration=20

You can find more params from the quic/tools/tperf.cpp file, or run $BUILD_DIR/tperf --help

@yangchi
Copy link
Contributor

yangchi commented May 22, 2020

@psantosl : i think we are good to close this? Let us know if there are more you'd like to know or if you run into any problem. Thank you!

@psantosl
Copy link
Author

Sure! Thank you!

facebook-github-bot pushed a commit that referenced this issue Jan 27, 2023
Summary:
X-link: facebook/fboss#124

X-link: facebookincubator/reindeer#6

X-link: facebook/sapling#497

Pull Request resolved: #284

X-link: facebook/wangle#212

X-link: facebookincubator/velox#3785

X-link: facebookexperimental/rust-shed#37

X-link: facebook/hhvm#9317

X-link: facebookexperimental/edencommon#6

X-link: facebookincubator/hsthrift#108

X-link: facebook/proxygen#436

X-link: facebookincubator/katran#183

X-link: facebook/openr#143

X-link: facebook/fbthrift#536

X-link: facebook/fb303#33

X-link: facebook/folly#1924

FBOSS OSS on-diff job is failing due to random test failures.

Disabling the tests for now to avoid build breakages.

Reviewed By: shri-khare

Differential Revision: D42550176

fbshipit-source-id: a40a4d39c2176e4a201f6c49c6e7837c4c7c90e5
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

No branches or pull requests

3 participants