-
Notifications
You must be signed in to change notification settings - Fork 131
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
Achieving higher throughput #291
Comments
Your What you can do:
|
Thank you for taking a look :)
I thought I already did exactly that by creating an io_uring in every thread (also with single issuer).
I thought I already did that with buf_ring.
I'll definitely try that!
Same here
Same here as well
Do you know if there are specific settings that play well with io_uring or is that general advice? |
I like this series of articles:
The first article about receiving side describes multi queue NIC configuration for Receive Side Scaling. |
From time to time I am playing around with iouring for networking.. espacially tcp connections.
Today I did a basic comparison on good ol` tokio vs iouring (using registered buffers, buf_ring and recv_multishot). My goal was to receive as many bytes as possible per second.
I was pretty sure I wont reach tokio`s battle-tested performance in an afternoon but even so I was surprised that tokio reached ~2 times the throughput.
Tokio: ~110 Gbit/s
io-uring: ~55 GBit/s
Network: loopback (127.0.0.1)
Kernel: 6.9.6-zen1-1-zen
CPU: AMD Ryzen 9 5900X (24) @ 3.700GHz
I used btop to meassure the throughput and #290 for the iouring buf_ring.
Maybe someone here can point out any obvious skill issues on my side or give some general advice.
iouring_tcp_sink.rs
tokio_tcp_sink.rs
tokio_tcp_src.rs
The text was updated successfully, but these errors were encountered: