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