Pull to refresh

Тюнинг сетевого стека Linux для ленивых (v2.5.0)

Reading time 2 min
Views 18K

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


Цель проекта — упростить и унифицировать процесс тюнинга сетевого стека и сетевых карт, снизив необходимость разбираться в устройстве сетевого стека для сисадминов и освободить их головы от рутинных вычислений и написания с нуля кучи одинаковых bash-скриптов.


Рекомендации для использования — наличие канала с 200+ Мбит/с, обрабатываемого Linux-based машиной, и требований к минимизации задержек и потерь.


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


Помимо исправлений ошибок улучшена кодовая база, удалось отказаться от устаревшего optparse в пользу argparse (почему argparse, а не click).


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


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

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


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

P.S: проект участвует в hacktoberfest, вроде как несколько простеньких issue для питонистов ещё осталось.

Tags:
Hubs:
+13
Comments 5
Comments Comments 5

Articles