Представлен выпуск проекта 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 для питонистов ещё осталось.
Автор: weirded