Fireperf измеряет скорость обработки новых соединений на сетевых устройствах
Открытый инструмент fireperf дополняет iperf3 тестами на число новых соединений, работу долгоживущих сессий и сценарии «запрос–ответ».
Команда разработчиков IPFire представила fireperf — открытый инструмент для измерения производительности сетей. Он рассчитан на системных администраторов, разработчиков и тестировщиков, которым нужно оценивать не только пропускную способность канала, но и поведение межсетевых экранов и маршрутизаторов под нагрузкой.
В отличие от популярных инструментов вроде iperf3, fireperf фокусируется на количестве новых соединений, которое устройство способно обработать за секунду, а также на стабильности этой работы во времени. Программа создаёт соединения с заданной частотой и измеряет продолжительность рукопожатия для каждого из них. При сбоях фиксируется причина: тайм-аут, отклонение запроса или исчерпание ресурсов на тестируемом устройстве.
Инструмент умеет оставлять соединения открытыми и периодически проверять их активность. Это помогает обнаружить сессии, которые файрвол или маршрутизатор незаметно удаляет после определённого периода бездействия. Такой сценарий позволяет тестировать не только момент установления соединения, но и работу устройства с большим числом долгоживущих сессий.
Сервер fireperf может одновременно принимать любое количество клиентов через один порт. Каждый клиент при этом выполняет независимый тест. Для пользователей существующей инфраструктуры предусмотрена совместимость с iperf3: сервер fireperf принимает подключения его клиентов, а сам инструмент может работать с серверами iperf3 и iperf.
Моделирование реального трафика
Помимо проверки чистой пропускной способности, fireperf поддерживает шаблоны «запрос–ответ». Например, тест может имитировать отправку запроса размером 100 байт и получение ответа объёмом 10 КБ. Это позволяет приблизить нагрузку к реальным приложениям, где обмен данными обычно состоит из множества небольших запросов и более крупных ответов.
В тесте между двумя виртуальными машинами через интерфейс virtio, где использовались восемь соединений, fireperf потреблял 0,071 процессорной секунды на каждый переданный гибибайт данных при работе с io_uring. Для сравнения, у iperf3 этот показатель составил 0,505 секунды в стандартном режиме и 0,153 секунды с опцией -zerocopy. На 16-ядерной системе fireperf также показал результат свыше 230 000 соединений в секунду при проверке через loopback-интерфейс.
При запуске в терминале программа отображает график в реальном времени и сводные сведения о клиентах. Если интерактивный терминал недоступен, результаты выводятся построчно. Для автоматизированной обработки предусмотрен режим -json, формирующий отчёты в формате JSON с интервалом в одну секунду.
Готовые пакеты fireperf доступны для Debian, Arch Linux, RHEL и совместимых дистрибутивов, включая AlmaLinux и Rocky Linux, а также для openSUSE Tumbleweed. Для максимальной производительности разработчики рекомендуют использовать библиотеку liburing версии 2.3 или новее.
Сообщить о проблеме в публикации
Обращение принято Обращение будет рассмотрено. По результатам проверки публикация может быть исправлена, дополнена, временно скрыта или удалена.







