Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
net_ratelimit: callbacks suppressed Linux / DevOps

net_ratelimit: callbacks suppressed — Борьба со штормом сетевых ошибок Linux

Обновлено: 18.08.2026  ·  Официальная база знаний

Архитектура ошибки и симптомы сбоя

Предупреждение «net_ratelimit: callbacks suppressed due to packet drop storm» генерируется функцией ядра __ratelimit() в сетевой подсистеме. Оно указывает на то, что сетевой драйвер или стек IP генерирует критически высокий объем диагностических сообщений об ошибках (сброс пакетов, поврежденные заголовки, ошибки контрольных сумм, блокировки фаервола). Чтобы предотвратить зависание сервера из-за 100% загрузки процессора записью логов в dmesg / journald, ядро временно подавляет вывод однотипных сообщений.

Диагностическая таблица параметров сбоя

ПараметрЗначениеИнженерный смысл сбоя
net_ratelimit()Log Throttling MechanismФункция защиты системного журнала от флуда сетевыми сообщениями.
net.core.message_cost5 (seconds, default)Стоимость одного сообщения (интервал сброса токенов в алгоритме Token Bucket).
net.core.message_burst10 (messages, default)Максимальное количество сообщений, разрешенных к непрерывному выводу.

Пошаговое дерево решений и сценарии траблшутинга

Сценарий 1: Локализация первопричины сетевых сбросов (Packet Drops)

Определите, на каком уровне происходят реальные потери сетевых пакетов:

# Анализ аппаратных и программных сбросов на интерфейсе:
ethtool -S eth0 | grep -E "(drop|error|miss|discard|overrun)"

# Проверка статистики сетевого стека по протоколам:
netstat -s | grep -E "(dropped|overflow|error)"

Сценарий 2: Увеличение размера кольцевых буферов сетевой карты (Ring Buffers)

В большинстве случаев шторм сбросов вызван переполнением входного RX буфера сетевой карты:

# Просмотр текущих и максимальных лимитов буферов:
sudo ethtool -g eth0

# Установка максимальных значений кольцевого буфера (например, 4096):
sudo ethtool -G eth0 rx 4096 tx 4096

Сценарий 3: Настройка параметров ограничения частоты логирования

Если вам временно требуется увидеть все скрытые сообщения для глубокой отладки:

# Увеличение лимита вывода сообщений:
sudo sysctl -w net.core.message_burst=100
sudo sysctl -w net.core.message_cost=1
Сетевые адаптеры захлебываются во входящем трафике?
ITSTM выполнит оптимизацию сетевого стека ядра, настройку очередей multiqueue, RSS/RPS/RFS и устранит потери пакетов под любыми нагрузками.
Практический опыт инженера: При работе на скорости 10G/40G/100G обязательно включайте Receive Packet Steering (RPS) на многоядерных процессорах, распределяя битовую маску очередей /sys/class/net/ethX/queues/rx-N/rps_cpus по всем изолированным ядрам.

Частые вопросы (FAQ)

Опасна ли сама по себе ошибка callbacks suppressed?

Само сообщение не является ошибкой — это защитный механизм ядра. Опасность представляет причина, вызвавшая подавление: сетевой шторм, аппаратные сбои кабеля, атака или массовый сброс пакетов фаерволом.

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

Подавленные сообщения идентичны тем, которые выводились непосредственно перед строкой net_ratelimit: callbacks suppressed (например, nf_conntrack: table full или drop open request).

Как навсегда сохранить настройки ethtool -G rx 4096?

В Ubuntu/Debian добавьте директиву post-up ethtool -G eth0 rx 4096 в /etc/network/interfaces, либо используйте systemd-networkd / NetworkManager диспетчерские скрипты.

Что такое NAPI poll budget в контексте packet drop storm?

Параметр net.core.netdev_budget задает максимальное число пакетов, которое ядро может обработать за один цикл прерывания NAPI. При штормах увеличьте его со 300 до 600 командой sysctl -w net.core.netdev_budget=600.