The CPU Cost of Networking on a Linux Host
This is one of the reasons I have a strong aversion to "cloud" technologies like docker and kubernetes. You take networking, something with decades of development and hardware support, and you put it all in the CPU.<p>To be clear, Linux has a very robust networking stack. But it will never come close to the natting and routing performance of an actual router.<p>And so we develop things like DPDK to spend <i>even more</i> CPU just to keep things usable, but it still feels like a big step backwards.<p>A typical k8s deployment runs in containers that are in VMs. So each packet you want to send to or from a container needs to touch a cpu and traverse a networking stack <i>six times</i>. That's dumb.