Симптом: сервис на UDP деградирует «сам по себе», ошибок в логах ноль. UDP не жалуется — он молча дропает. Считаем дропы правильно:
nstat -az | grep -i udprcvbuf # смотрим ПРИРОСТ за интервал, не абсолют! ss -ulpn # кто слушает и с какими буферами sysctl net.core.netdev_max_backlog # live-значение, а не то, что в файле
Минимальный комплект для загруженного UDP-приёмника:
net.core.rmem_max = 33554432 net.core.wmem_max = 33554432 net.core.netdev_max_backlog = 10000
netdev_max_backlog по умолчанию 1024 — при десятке тысяч пакетов в секунду и
просадке CPU на 100 мс очередь переполняется, и пакеты исчезают до сокетов. И не забудьте, что
ключи net.netfilter.* применяются только если модуль nf_conntrack уже
загружен — типичная причина «sysctl применён с ошибкой, а я не заметил».