Назад | Перейти на главную страницу

Какие параметры ядра следует настроить, чтобы исправить переполнение RX?

У меня есть сервер Centos 6, который обрабатывает большой трафик. Я вижу, что переполнение RX все время увеличивается:

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) 

В соответствии с http://www.tldp.org/LDP/nag2/x-087-2-iface.ifconfig.html

Переполнение приемника обычно происходит, когда пакеты приходят быстрее, чем ядро ​​может обработать последнее прерывание.

Какие параметры ядра следует изменить, чтобы решить эту проблему?

Я бы предложил использовать соответствующий tuned-adm профиль для вашей конфигурации ввода / вывода. Для этой настройки это звучит как yum install tuned-utils и tuned-adm profile enterprise storage было бы полезно.

На стороне ядра вы можете установить буферы отправки / получения:

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

Я бы попробовал сначала ...

Если вы все еще видите проблемы, вы можете проверить кольцевой буфер сетевого адаптера с помощью 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

Таким образом, вы можете изменить rx с 256 до 1024 с помощью ethtool -G eth0 rx 1024.