Performance Tuning & Kernel Parameters (Sysctl)
Stop letting your web servers choke on half-open TCP connections
đź§© The Challenge
Dealing with a massive flood of incoming requests and watching your server start dropping packets because the backlog is full of garbage is a nightmare. I spent an entire weekend chasing “connection reset by peer” errors just to realize the default listen queue was laughably small for the traffic we were pushing.
đź’ˇ The Fix
Crank up the net.core.somaxconn and tcp_max_syn_backlog values to give your listening sockets some breathing room when a spike hits. It’s the easiest way to stop connections from being rejected before your app even sees them.
sysctl -w net.core.somaxconn=4096
sysctl -w net.ipv4.tcp_max_syn_backlog=4096
sysctl -p
⚙️ Why It Works
Increasing these settings expands the size of the kernel-side queue for pending connections, preventing the dreaded SYN overflow that happens when the handshake can’t finish fast enough. And yeah, make sure you bump these in /etc/sysctl.conf so they actually stick after a reboot.
🚀 Pro-Tip: Check netstat -s | grep “SYNs to LISTEN sockets dropped” to see if you’re actually losing connections before you start tuning.
Linux Tips & Tricks | © ngelinux.com | 7/16/2026
