3 ms·
> You can now get a network pipe in to a system that a rather beefy multi-core CPU using a user-space TCP stack can barely keep up with. I'd love to learn more
by sriram_malhar 9y ago
> You can now get a network pipe in to a system that a rather beefy multi-core CPU using a user-space TCP stack can barely keep up with.
I'd love to learn more about this. Can you please point me to some links that elaborate on this point with benchmarks? Thanks much.
- jerf 9y agoGoogle around for the Intel DPDK, and you can find things like this: http://www.cs.cornell.edu/courses/cs5413/2014fa/projects/group_of_dsd96_vs444/final_doc.pdf http://www.cs.cornell.edu/courses/cs5413/2014fa/projects/gro... You can also do a simple math analysis to see it. If you have an incoming 10Gbps connection, a single core machine has approx. 1/3rd of a cycle per bit to do everything it's going to do with that packet. Even going to a 128 core machine and assuming perfect parallelism with some sort of magical packet muxer gives you a whopping 43-ish cycles per bit. I've never worked on this myself, but I saw a team in my company working with it and were pretty pleased to be able to push ~2Gbps through their 10Gbps network connection with a pretty beefy machine, and just about all they were doing was relatively simple load balancing.
- mtanski 9y agoLWN has had quite a few past articles that went into details of issues with processing network packets at line speeds on modern OSes and machines. https://lwn.net/Articles/629155/ https://lwn.net/Articles/629155/ https://lwn.net/Articles/713918/ https://lwn.net/Articles/713918/ https://lwn.net/Articles/719850/ https://lwn.net/Articles/719850/ The block layer has gone through somewhat similar issues as some storage devices started approaching RAM speeds.