Stop your softirq processing from killing your NIC throughput

Performance Tuning & Kernel Parameters (Sysctl)

Stop your softirq processing from killing your NIC throughput

🧩 The Challenge

Dealing with a server that suddenly chokes when you throw 10Gbps+ of traffic at it is maddening, especially when the CPU usage for softirqs hits 100% on a single core. You check your metrics, see the packets are dropping like flies, but the system looks like it’s idling.

💡 The Fix

Spread the network interrupt load across your available cores by bumping up the backlog queue limit and tweaking your RPS settings. It keeps the kernel from getting overwhelmed by a deluge of packets.

sysctl -w net.core.netdev_max_backlog=5000
echo f > /sys/class/net/eth0/queues/rx-0/rps_cpus

⚙️ Why It Works

Pushing the backlog limit gives the kernel a bigger buffer during traffic spikes, and setting the RPS mask distributes that interrupt processing across multiple CPUs instead of just CPU0.

🚀 Pro-Tip: Check your /proc/interrupts first to see if your NIC driver actually supports multi-queue hardware RSS before you go messing with software-based scaling.

Linux Tips & Tricks | © ngelinux.com | 8/5/2026

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Newest
Oldest Most Voted