netdev_budget и обработка большого потока пакетов При большом PPS… — Network Admin — TG.ME

netdev_budget и обработка большого потока пакетов

При большом PPS сервер может начать терять пакеты, хотя канал ещё далеко не забит.

Один из интересных параметров здесь - netdev_budget: сколько пакетов kernel может обработать за один проход NAPI.

Посмотреть текущее значение:

sysctl net.core.netdev_budget


Если входящий поток постоянно превышает этот лимит, обработка переносится на следующие проходы. В результате растут очереди и latency, а CPU может выглядеть вполне нормально.

Посмотреть, есть ли проблема именно на уровне softnet:

cat /proc/net/softnet_stat


Особенно интересны drops и количество обработанных пакетов. Если счётчики начинают быстро расти, проблема уже ближе к обработке пакетов ядром, а не к приложению.

Ещё один параметр связан со временем, которое kernel готов потратить на один такой проход:

sysctl net.core.netdev_budget_usecs


И вот здесь начинается интересный баланс: слишком маленький budget может оставить пакеты ждать следующего прохода, а слишком большой - позволить сетевой обработке надолго занять CPU и повлиять на остальные задачи.

На загруженном сервере поэтому полезно смотреть не только bandwidth, но и PPS, softirq, softnet drops и NAPI budget.

N.A.
👍2
August 13, 2026 2.1K 18