Skip to main content
22.03.2024

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

head-image

Updated April 2026 with faster ethtool -g and ethtool -G examples 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

  1. Confirm the link is healthy with ethtool and ip -br link
  2. Check ring sizes with ethtool -g
  3. Increase RX and TX gradually with ethtool -G
  4. Recheck ip -s link show for drops
  5. 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.

Automate incident response and prevent on-call burnout with AI-driven agents!