▲ | touisteur 2 days ago | ||||||||||||||||||||||
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. | |||||||||||||||||||||||
▲ | ozgrakkurt 2 days ago | parent | next [-] | ||||||||||||||||||||||
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... | |||||||||||||||||||||||
| |||||||||||||||||||||||
▲ | lossolo 2 days ago | parent | prev [-] | ||||||||||||||||||||||
Any numbers for io_uring with 4x100gb nics in your tests? |