If you enjoy this post, you may also enjoy the companion post which dives into the same level of detail, but for the receive side[1].<p>I set out to write all this up because so much of the existing documentation (including the man pages) is vague, incomplete, or nonexistent. FWIW, I think this is probably to be expected for a system as complex as the Linux kernel.<p>[1]: <a href="https://blog.packagecloud.io/eng/2016/06/22/monitoring-tuning-linux-networking-stack-receiving-data/" rel="nofollow">https://blog.packagecloud.io/eng/2016/06/22/monitoring-tunin...</a>
<i>It is impossible to tune or monitor the Linux networking stack without reading the source code of the kernel and having a deep understanding of what exactly is happening.</i><p>No, it isn't.<p>Sure, reading the source code won't hurt, but I'd wager that most people who have set up adequately tuned servers did not need to read a single line of the kernel's source.<p>Putting such a definitive statement right at the top of this document makes me feel far less confident in trusting what it says. Is everything in it going to be just as over the top?