Представлен (https://github.com/strizhechenko/netutils-linux/releases) выпуск проекта netutils-linux 2.5.0 (https://github.com/strizhechenko/netutils-linux), в рамках которого развивается набор утилит для мониторинга и тюнинга производительности сетевого стека 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.
Долгосрочные планы проекта
- Пополнение примеров применения (https://github.com/strizhechenko/netutils-linux/tree/master/...).
- Упаковка в стандартные для дистрибутивов Linux форматы пакетов.
- Добавление пакета в стандартные репозитории дистрибутивов.
- Интеграция с Tuned и (или) NetworkManager.
- Теоретически - выработка алгоритма, позволяющего полностью автоматически настраивать все сетевые карты наиболее оптимальным образом в 90% случаев.
URL: https://github.com/strizhechenko/netutils-linux/releases
Новость: http://www.opennet.dev/opennews/art.shtml?num=47400