Пик RcvBufErrors и InErrors составляет около 700 / событий в секунду - PullRequest
0 голосов
/ 30 августа 2018

Netdata Alert: 1m ipv4 udp receive buffer errors | 23650 errors

У меня есть кластер из трех серверов, которые являются частью кластера ELK (Elasticsearch Logstash Kibana), получающего данные netflow / sflow / ipfix. Каждый сервер имеет нагрузку nginx, балансирующую тонну данных UDP среди трех серверов.

Пример: Маршрутизатор отправит сетевой поток на любой из серверов через порт UDP 9995 и распределит его (с потоком nginx) среди всех трех серверов в udp / 2055. Он может переслать этот пакет на тот же компьютер, но через порт 2055, или он может отправить его на другой компьютер через порт 2055. Вход сетевого потока Logstash настроен на прослушивание UDP-порта 2055 только на каждом компьютере. sFlow работает так же, но использует дистрибутив udp / 9995 для udp / 6343 и т. д.

Это все работает нормально и без использования netdata можно было бы предположить, что оно работает отлично, но я вижу следующую проблему:

Netdata Screenshot

Я исследовал это большую часть своего времени в течение последних нескольких дней и не добиваюсь никакого прогресса. Я пытался настроить вещи с sysctl без какого-либо эффекта. Тот же шаблон графа продолжается неуклонно, и RcvBufErrors и InErrors достигают пика примерно 700 / событий в секунду. Время от времени я наблюдаю всплеск или провал при внесении изменений контролируемым образом, но всегда преобладает один и тот же паттерн с одинаковыми пиковыми значениями.

Значения, которые я пытался увеличить с помощью sysctl, и их текущие значения:

net.core.rmem_default = 8388608
net.core.rmem_max = 33554432
net.core.wmem_default = 52428800
net.core.wmem_max = 134217728
net.ipv4.udp_early_demux = 0 (was 1)
net.ipv4.udp_mem = 764304   1019072 1528608
net.ipv4.udp_rmem_min = 18192
net.ipv4.udp_wmem_min = 8192
net.core.netdev_budget = 10000
net.core.netdev_max_backlog = 2000

Заметьте, у меня тоже проблема 10min netdev budget ran outs | 5929 events, но это не так важно. Вот почему я увеличил net.core.netdev_budget и net.core.netdev_max_backlog, как описано выше.

Я также попытался увеличить количество рабочих (с 4 до 8), размер очереди (с 2048 до 4096) и буфер приема (с 32 МБ до 64 МБ) для каждого из входов logstash, но я не вижу каких-либо Разницы тоже нет. Я дал достаточно времени на перезапуск logstash и все, чтобы отразить новые настройки, но проблема осталась прежней.

Буду признателен за любые идеи о том, что я могу сделать, чтобы выяснить, что мне нужно изменить, и как на самом деле определить, для чего они должны быть установлены.

Спасибо за чтение.

...