Представлен (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.me/opennews/art.shtml?num=47400
>Теоретически - выработка алгоритма, позволяющего полностью автоматически настраивать все сетевые карты наиболее оптимальным образом в 90% случаев.Интересная штука, даже несмотря на:
>Теоретически
>в 90% случаевЛюбопытно было бы узнать, как он работает.
Через libastral, очевидно же.
>>Теоретически - выработка алгоритма, позволяющего полностью автоматически настраивать все сетевые карты наиболее оптимальным образом в 90% случаев.
> Интересная штука, даже несмотря на:
>>Теоретически
>>в 90% случаев
> Любопытно было бы узнать, как он работает.libastral было бы неплохо заиметь, да, но вообще на мой взгляд банальной эвристики для определения пары типовых случаев (1 физическая сетевая карта с несколькими очередями на 1 NUMA-ноду; несколько дешёвых single-queue сетёвок с одним многоядерным процом итд) более чем достаточно.
released this on Aug 24
Свежак!
Я немного был полтора месяца, то релиз на работе, то день рождения, то отпуск. Да и к тому же каких-то критических проблем не было с утилитами, чтобы сломя голову чинить-допиливать.
Спасибо, как сделать чтобы autorps запоминал настройки? Или он просто "удобный способ переключить там 0 в f"?Autorps теперь по умолчанию использует только ядра локальной для сетевого устройства NUMA-ноды вместо того, чтобы падать с ошибкой в системе с несколькими процессорами.
Я так понял он не применяет эту настройку навсегда после перезагрузок будет то же самое что и если руками ее менять?
> Спасибо, как сделать чтобы autorps запоминал настройки? Или он просто "удобный способ
> переключить там 0 в f"?
> Autorps теперь по умолчанию использует только ядра локальной для сетевого устройства NUMA-ноды
> вместо того, чтобы падать с ошибкой в системе с несколькими процессорами.
> Я так понял он не применяет эту настройку навсегда после перезагрузок будет
> то же самое что и если руками ее менять?отвечу сам себе ;) я просто пробовал менять эту настройку уже по гайду OpenSUSE:
https://doc.opensuse.org/documentation/leap/tuning/html/book...и она после перезагрузки сбрасывалась в 0 из f. вопрос autorps autoxps действует так же?
я в общем то просто добавил в сервис systemd ее на всякий пожарный.у меня вообще там много чего ;)
ExecStart=/usr/bin/ip link set dev enp0s17 txqueuelen 2000
ExecStart=/usr/bin/autorps enp0s17
ExecStart=/usr/bin/autoxps enp0s17
#ExecStart=/usr/bin/hdparm -q --please-destroy-my-drive -J30 /dev/sda
#ExecStart=/usr/bin/hdparm -q --yes-i-know-what-i-am-doing -m4 /dev/sda
#ExecStart=/usr/bin/hdparm -q -M254 /dev/sda
#ExecStart=/usr/bin/hdparm -q -W1 /dev/sda
#ExecStart=/usr/bin/hdparm -q -a256 /dev/sda
#ExecStart=/usr/bin/ethtool -K enp0s17 rx on tx on sg on tso on gso on gro on rxvlan on txvlan on##off###rx off tx off sg off tso off gso off gro off rxvlan off txvlan off
#ExecStart=/usr/bin/ethtool -G enp0s17 rx 16384
#ExecStart=/usr/bin/ethtool -G enp0s17 tx 16384
Да, autorps, как и autoxps - просто удобный способ записать правильное число, в том числе и после смены части оборудования (например вместо 1 4-ядерного проца воткнули 2 8-ядерных). Да и разницы у них - две строчки:https://github.com/strizhechenko/netutils-linux/blob/master/...
Про запоминание (глобально для всех утилит) - именно эту задачу я и хочу решить "интеграцией с Tuned/NetworkManager". А точнее переложить на них задачу по автостарту, применению в нужный момент, формату конфига, дефолтному поведению итд.
Tuned outdates уже в АУР, последний коммит 2016й год, я пока не стал его ставить.
опс, соврал, это про numad, с tuned все в порядке ;)