3 ms·
A few quick notes: - The Linux network stack has been getting faster. Workarounds that may have made sense 5 years ago, vs 2.6.something, may make less sense t
by brendangregg 10y ago
A few quick notes:
- The Linux network stack has been getting faster. Workarounds that may have made sense 5 years ago, vs 2.6.something, may make less sense today vs 4.7. It makes it hard to research the topic, as you'll find statements of fact that are no longer true today.
- The kernel stack is complex, but then it also handles a lot of TCP/IP behaviors. Eg, buffer bloat. You might code a lightweight stack that works great in microbenchmarking (factors faster), but falls apart when connected to real devices. I've worked on differing TCP/IP implementations that had this behavior, and the stack that was slower in the lab was faster for the customer's real world messy workload.
- What is Facebook doing? eXtreme Data Path: https://github.com/iovisor/bpf-docs/raw/master/Express_Data_Path.pdf https://github.com/iovisor/bpf-docs/raw/master/Express_Data_... ... this is really new and exciting stuff.
- Unikernels :-)
- brendangregg 10y agoAnother technology worth mentioning is the Linux network parallelism features (which I think came from Google): https://www.kernel.org/doc/Documentation/networking/scaling.txt https://www.kernel.org/doc/Documentation/networking/scaling.... My colleague at Netflix, Amer Ather, wrote about this tuning and more in a post detailing some network tuning from a Xen guest, where he was reaching 2 million packets/sec: http://techblog.cloudperf.net/2016/05/ http://techblog.cloudperf.net/2016/05/
- brendangregg 10y agoGoogle Maglev: 2008 XDP (Facebook and others): 2016