Релиз netutils-linux 2.5, утилит для мониторинга и тюнинга сетевого стека Linux

Представлен выпуск проекта netutils-linux 2.5.0, в рамках которого развивается набор утилит для мониторинга и тюнинга производительности сетевого стека Linux. Исходные тексты проекта написаны на Python (поддерживаются python 2.6+ и 3.4+) и поставляются под лицензией MIT.

Цель проекта — упростить и унифицировать процесс настройки сетевого стека и сетевых карт, снизив необходимость разбираться в устройстве сетевого стека для рядовых системных администраторов (и снизить объём вычислений в уме: маски CPU, соответствие CPU и номеров IRQ и т.д.). В состав входят такие программы, как network-top, irqtop, softirq-top, softnet-stat-top, link-rate, snmptop, rss-ladder, autorps, maximize-cpu-freq, rx-buffers-increase и server-info. Например, утилиты могут оказаться полезными при проведении работы по минимизации задержек и потерь пакетов в конфигурации с Linux-сервером, подключенном по каналу в 200 Мбит/с и выше.

С момента прошлого (и первого) публичного релиза было исправлено несколько неприятных ошибок, связанных с совместимостью с архитектурами, дистрибутивами Linux, версиями Python и зависимостями проекта, приводившими к невозможности запуска некоторых утилит. Помимо исправлений ошибок улучшена кодовая база, удалось отказаться от устаревшего optparse в пользу argparse.

Другие нововведения:

  • Утилиты autorps и rss-ladder переписаны с Bash на Python с сохранением полной обратной совместимости. Также автоматизирована настройка оборудования в специфических ситуациях:
    • Добавлены предупреждения при использовании неоптимальных параметров таких как использование foreign NUMA-ноды и нескольких очередях одной сетевой карты, обрабатываемых одним и тем же ядром.
    • Autorps теперь по умолчанию использует только ядра локальной для сетевого устройства NUMA-ноды вместо того, чтобы падать с ошибкой в системе с несколькими процессорами.
    • Точное задание списка ядер, обрабатывающих пакеты;
    • Задание «сдвига» для RSS, что подходит в ситуации, когда один физический процессор с 8+ ядрами обрабатывает несколько сетевых карт;
  • Утилиты для мониторинга (в первую очередь network-top) подсвечивают метрики, значения которых указывают на повышенную нагрузку.
  • Добавлена утилита autoxps для настройки распределения отправки пакетов между ядрами процессора.
  • Добавлен прототип утилиты snmptop для визуализации файла /proc/net/snmp.

Долгосрочные планы проекта

  • Пополнение примеров применения.
  • Упаковка в стандартные для дистрибутивов Linux форматы пакетов.
  • Добавление пакета в стандартные репозитории дистрибутивов.
  • Интеграция с Tuned и (или) NetworkManager.
  • Теоретически — выработка алгоритма, позволяющего полностью автоматически настраивать все сетевые карты наиболее оптимальным образом в 90% случаев.

© OpenNet