Performance Tuning & Kernel Parameters (Sysctl)
Stop your network throughput from hitting a glass ceiling with custom buffer sizes
🧩 The Challenge
You finally get that 10Gbps line installed, but your transfer speeds are barely touching a fraction of that even though the hardware is fine. I’ve wasted a whole afternoon once trying to figure out why the kernel was throttling my throughput just because the default window buffers were too damn small.
💡 The Fix
Crank up your TCP buffer limits so the kernel can actually buffer enough in-flight data to fill that fat pipe. It’s a game-changer for high-latency or high-bandwidth links.
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
sysctl -w net.ipv4.tcp_rmem='4096 87380 16777216'
sysctl -w net.ipv4.tcp_wmem='4096 65536 16777216'
⚙️ Why It Works
Modern high-speed networks require significantly larger memory buffers than the default values allow, or the TCP windowing mechanism will stall while waiting for acknowledgments. Increasing these values prevents the sender from constantly pausing to wait for the receiver to catch up.
🚀 Pro-Tip: Always add these to /etc/sysctl.d/99-networking.conf so you don’t lose your performance gains after the next reboot.
Linux Tips & Tricks | © ngelinux.com | 8/13/2026
