←back to thread

67 points anon6362 | 2 comments | | HN request time: 0s | source
Show context
alexdns ◴[] No.45074520[source]
It was considered innovative when it was first shared here eight years ago.
replies(1): >>45074700 #
nurumaik ◴[] No.45074700[source]
Anything more innovative happened since (honestly curious)?
replies(4): >>45075146 #>>45075479 #>>45075495 #>>45077234 #
ozgrakkurt ◴[] No.45075495[source]
You can apparently do 100gbit/sec on a single thread over ethernet with io uring.
replies(2): >>45075999 #>>45076203 #
touisteur ◴[] No.45075999{3}[source]
Recently did 400gb/s on a single core / 4x100gb nics (or just the one 400g nic, too) with dpdk. Mind you it's with jumbo frames and constant packet size for hundreds of mostly synchronized streams... You won't process each packet individually, mostly put them in queues for later batch-process by other cores. Amazing for data acquisition applications using UDP streams.

I keep watching and trying io_uring and still can't make it work as fast with simple code as consistently for those use cases. AF_XDP gets me partly there but then you're writing ebpf... might as well go full-dpdk.

Maybe it's a skill issue on my part, though. Or just a well-fitting niche.

replies(2): >>45076075 #>>45077079 #
ozgrakkurt ◴[] No.45077079{4}[source]
Sounds super cool but dpdk sounds like it won't be worth the difficulty from what I read so far.

I also want to get into socket io using io_uring in zig. I'll try to apply everything I found in liburing wiki [0] and see how much I can get (max hardware I have is 10gbit/s).

Seems like there is: - multi-shot requests - register_napi on uring instance - zero copy receive/send. (Probably won't be able to get into it)

Did you already try these or are there other configurations I can add to improve it?

[0]: https://github.com/axboe/liburing/wiki/io_uring-and-networki...

replies(2): >>45077749 #>>45078109 #
1. lossolo ◴[] No.45077749{5}[source]
You don't even need io_uring for 10 gbit/s, epoll will do that easily, unless you have very niche workload.
replies(1): >>45078699 #
2. immibis ◴[] No.45078699[source]
For UDP Pixelflut, I was able to send 8Gbps on a 10Gbps link with a single thread running a tight loop doing byte shuffling and then sendmmsg. I didn't bother to multithread it because that's a convenient amount of headroom left over for actual communications.