2

I have a Centos 6 server that handles a lot of traffic. I see RX overruns increasing all the time:

RX packets:11191345002 errors:0 dropped:0 overruns:35592596 frame:0
TX packets:15262461573 errors:0 dropped:0 overruns:0 carrier:0
RX bytes:1871320014951 (1.7 TiB)  TX bytes:12673638434114 (11.5 TiB) 

According to http://www.tldp.org/LDP/nag2/x-087-2-iface.ifconfig.html

Receiver overruns usually occur when packets come in faster than the kernel can service the last interrupt.

Which kernel parameters should be adjusted to fix this issue?

Fernando
  • 1,189
  • 6
  • 23
  • 32
  • More detail. What is your application doing? – ewwhite Jul 22 '15 at 12:44
  • It's a SMTP server that handles traffic for thousands of customers. Load is usually low ( below 2 ) as the server has a lot of RAM ( 256GB ) and fast SSDs in RAID 6. Our only issue is related to network since during peak times some connections are dropped and the overruns increase when the issue is happening. – Fernando Jul 22 '15 at 12:50
  • Have you made *any* `/etc/sysctl.conf` modifications? – ewwhite Jul 22 '15 at 12:59

1 Answers1

5

I'd suggest using an appropriate tuned-adm profile for your I/O configuration. For this setup, it sounds like yum install tuned-utils and tuned-adm profile enterprise storage would be helpful.

On the kernel side, you can set send/receive buffers:

net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

I'd try those first...

If you still see issues, you can check the NIC ring buffer with ethtool -g

Ring parameters for eth0:
Pre-set maximums:
RX:     4096
RX Mini:    0
RX Jumbo:   0
TX:     4096
Current hardware settings:
RX:     256
RX Mini:    0
RX Jumbo:   0
TX:     256

So you could modify the rx from 256 to 1024 with ethtool -G eth0 rx 1024.

ewwhite
  • 197,159
  • 92
  • 443
  • 809