-
Notifications
You must be signed in to change notification settings - Fork 4
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
io_uring performance #1
Comments
what kernel are you running on? i think the default options might not be optimal to be honest. things I think you want:
IIRC it definitely should be quicker than epoll but perhaps latest kernel versions require different tuning |
Thank you. The options worked. My kernel is 6.5.0-28-generic.
Could you explain a bit what happened here? Is defer_taskrun and napi_polling doing the same thing? |
napi_polling I do not believe is even in the kernel yet - I added it as an experiment. I doubt it makes much difference defer_taskrun makes networking of small packets using io_uring much more performant. see https://github.com/axboe/liburing/wiki/io_uring-and-networking-in-2023 |
It's in the 6.9 kernel, it did finally land. Not super relevant here, just wanted to mention it :-) |
I ran vanilla "./netbench" in liburing-2.4 and found epoll has better xput and latency comparing to io_uring. I then noticed this is discussed in Issue536. But I still hope there could be some explanations to these results, as I believe io_uring is marketed to be more efficient. For example, in some other tests, although epoll still outperforms io_uring, io_uring has a lot more idles. I wonder if we could trade these idle cycles to better performance?
Here's the result:
The text was updated successfully, but these errors were encountered: