NIC Buffer Sizes on Linux 2026: Check and Tune RX/TX Ring Buffers

Updated April 2026 with faster
ethtool -gandethtool -Gexamples for packet-drop troubleshooting.
Quick Answer
Run these commands first:
# Show current and maximum ring buffer sizes
sudo ethtool -g eth0
# Increase RX and TX ring buffers
sudo ethtool -G eth0 rx 4096 tx 4096
# Verify drops and errors
ip -s link show eth0
Bigger buffers can reduce drops during bursts, but they can also increase latency. If drops continue, also check link speed and duplex, coalesce settings, and net.core.netdev_budget.
NIC ring buffers hold packets briefly before the kernel processes them. If they are too small for bursty traffic, packets can drop before the CPU catches up. If they are too large, you can trade packet loss for extra latency.
What ethtool -g Shows
Run:
sudo ethtool -g eth0
You will usually see:
- Pre-set maximums: the largest RX and TX buffer sizes the NIC supports
- Current hardware settings: the active RX and TX ring sizes
If the current values are already at the hardware maximum, drops are probably caused by something else, such as bad negotiation, CPU pressure, or interrupt tuning.
When to Increase Ring Buffers
Increase ring buffers when you see:
- RX drops during short traffic bursts
- packet loss on busy servers with otherwise healthy links
- enough free memory and CPU to absorb larger queues
Typical change:
sudo ethtool -G eth0 rx 2048 tx 2048
Retest with your real workload after each change. Do not jump straight to the maximum unless you have evidence it helps.
When Larger Buffers Hurt
Larger ring buffers are not automatically better. They can:
- add queueing latency
- hide overload symptoms instead of fixing them
- increase burstiness deeper in the stack
Latency-sensitive workloads such as VoIP, trading, or interactive control systems often need smaller buffers than bulk-transfer systems.
Make Changes Persistent
ethtool -G changes are usually temporary. Persist them with your distro's network tooling or a systemd unit. One simple approach is a one-shot service:
[Unit]
Description=Set NIC ring buffers
After=network-pre.target
Before=network.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/ethtool -G eth0 rx 4096 tx 4096
[Install]
WantedBy=multi-user.target
Practical Tuning Flow
- Confirm the link is healthy with
ethtoolandip -br link - Check ring sizes with
ethtool -g - Increase RX and TX gradually with
ethtool -G - Recheck
ip -s link showfor drops - If drops remain, tune coalescing and kernel packet budget
Conclusion
NIC ring buffers matter when traffic arrives in bursts and the kernel needs more breathing room. Measure first, tune gradually, and validate with real traffic instead of guesswork.
Akmatori helps SRE teams investigate network incidents faster by automating diagnostics and surfacing likely causes before packet loss becomes an outage.
