Команда IPFire представила публичный инициатива fireperf — средство для измерения производительности сети

2 мин
Команда IPFire представила публичный инициатива fireperf — средство для измерения производительности сети

Команда разработчиков IPFire представила публичный проект fireperf — средство для измерения производительности сети. Это решение предназначено для измерения производительности сети и ориентировано на системных администраторов, разработчиков и тестировщиков. Инициатива равным образом позволяет имитировать шаблоны «запрос-ответ» для более точного моделирования реального сетевого трафика.

В то время как популярные сетевые инструменты, такие как iperf3, измеряют пропускную способность канала между двумя узлами, fireperf решает иную, но не менее важную для межсетевых экранов (файрволов) и маршрутизаторов задачу: сколько новых соединений в секунду способно обработать девайс и насколько эффективно оно управляет ими с течением времени?

Принцип работы инструмента заключается в создании соединений с заданной частотой. При этом фиксируется время выполнения процедуры «рукопожатия» (handshake) для каждого соединения, а в случае сбоя записывается его причина — будь то тайм-аут, отклонение запроса или исчерпание ресурсов на тестируемом устройстве.

Помимо этого, fireperf умеет поддерживать соединения открытыми и периодически проверять их активность. Это позволяет выявить, сколько соединений было «тихо» отброшено межсетевым экраном после определённого периода бездействия.

В отличие от iperf3, который выполняет только один проверка за раз, сервер fireperf может одновременно принимать любое количество клиентов через один порт, одновременно каждый заказчик проводит свой собственный независимый проверка. Для тех, кто уже использует iperf3, предусмотрена совместимость: сервер fireperf поддерживает работу с клиентами iperf3, а сам fireperf может взаимодействовать с существующими серверами iperf3 или iperf.

В дополнение к измерения чистой пропускной способности, fireperf даёт возможность имитировать сценарии «запрос-ответ» (например, запрос объёмом 100 байт и ответ размером 10 КБ), что даёт возможность более точно моделировать реальный веб трафик.

При тестировании между двумя виртуальными машинами (с использованием восьми соединений через оболочку virtio) инструмент потреблял 0,071 процессорной секунды на каждый переданный гибибайт (GiB) данных при использовании технологии io_uring. Для сравнения: показатели iperf3 составляют 0,505 секунды в стандартном режиме и 0,153 секунды при использовании опции ‑zerocopy. На 16-ядерной системе fireperf продемонстрировал итог более 230 000 соединений в секунду при тестировании через loopback‑интерфейс. При запуске в терминале fireperf отображает график в режиме реального времени и сводную информацию о клиентах. Если же терминал недоступен, приложение выводит данные построчно; равным образом предусмотрена опция ‑json, позволяющая получать ежесекундные JSON‑отчеты, удобные для автоматизированной обработки.

Сборка fireperf доступна в виде пакета для Debian, Arch Linux, RHEL (и совместимых с ним дистрибутивов, таких как AlmaLinux и Rocky Linux), а равным образом для openSUSE Tumbleweed. Исходный исходник и полная документация по тестированию представлены на официальном сайте проекта. Для достижения наилучшей производительности рекомендуется применять библиотеку liburing версии 2.3 или новее.

Поделиться

TelegramVK