Как протестировать функцию NAPI в linux?

Используйте pam и geoip модуль

Этот модуль PAM обеспечивает проверку GeoIP для входа в систему. Пользователь может быть разрешен или запрещен на основе местоположения IP-адреса. Это похоже на pam_access(8), но использует базу данных GeoIP City или GeoIP база данных страны вместо сопоставления имени хоста и IP-адреса.

1
07.07.2016, 08:35
1 ответ

Я написал подробное сообщение в блоге о настройке сети Linux , в котором объясняется все, что касается мониторинга, настройки и оптимизации сетевого стека Linux (включая вес НАПИ). Взглянем.

Помните: некоторые драйверы не отключают IRQ от сетевой карты при запуске NAPI. Они должны это делать, но некоторые просто не делают. Вы можете проверить это, проверив аппаратный обработчик IRQ в драйвере, чтобы увидеть, не отключены ли жесткие IRQ.

Обратите внимание, что в некоторых случаях жесткие IRQ повторно включаются, как указано в сообщении в блоге и ниже.

Что касается ваших вопросов:

  1. Увеличение netdev_budget увеличивает количество пакетов, которые может обработать NET_RX softirq. Количество пакетов, которые могут быть обработаны, также ограничено временным лимитом, который нельзя изменить. Это сделано для того, чтобы NET_RX softirq не потреблял 100% загрузки ЦП.Если устройство не получает достаточно пакетов для обработки во время своего распределения времени, hardirqs повторно подключаются и NAPI отключается.

  2. Вы также можете попробовать изменить настройки объединения IRQ для сетевой карты, если это поддерживается. См. Сообщение в блоге выше для получения дополнительной информации о том, как это сделать и что именно это означает.

  3. Вам следует добавить мониторинг в ваш файл / proc / net / softnet_stat . Поля в этом файле могут помочь вам выяснить, сколько пакетов обрабатывается, заканчивается ли у вас время и т. Д.

Вопрос, который вам следует рассмотреть, если можно:

Почему ваша скорость hardirq имеет значение ? Наверное, это не имеет значения. Обработчик hardirq в вашем драйвере сетевой карты должен делать как можно меньше работы, поэтому, вероятно, он не будет проблемой для вашей системы. Если это так, вам следует тщательно измерить это, поскольку это кажется очень маловероятным. Тем не менее, вы можете настроить параметры объединения IRQ и привязку IRQ к процессору, чтобы распределить обработку, чтобы изменить количество жестких запросов, генерируемых сетевой картой и обрабатываемых конкретным процессором, соответственно.

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

Помните: чтобы полностью настроить и оптимизировать сетевой стек Linux, вы должны контролировать и настраивать каждый компонент. Все они взаимосвязаны, и сложно (а часто и неправильно) отслеживать и настраивать только один аспект стека.

2
27.01.2020, 23:35

Теги

Похожие вопросы