Инструмент для сравнения алгоритмов балансировки нагрузки в многопоточной среде с использованием асинхронных корутин (C++23, Asio).
Проект позволяет проводить нагрузочное тестирование алгоритмов балансировки на настраиваемых сценариях. Результаты представляются в виде JSON-отчёта с детальной статистикой по латентности, отказам, пропускной способности и распределению запросов по серверам.
- Компилятор с поддержкой C++23 (GCC ≥ 13, Clang ≥ 16)
- CMake ≥ 3.24
- just (опционально, упрощает сборку)
- Python 3.11+ (только для веб-интерфейса визуализации)
Все необходимые С++ библиотеки (nlohmann/json, asio) загружаются автоматически при первой сборке через CMake FetchContent.
# Конфигурация проекта (скачивание зависимостей)
just setup [debug/release]
# Сборка, в build появятся {preset}_main цели
just build [debug/release]
# Запуск тестов (опционально)
just test
#короткий запуск
just run {path_testbanch} [path_out] [preset_name]#если нужны прогоны данных, то стоит перед началом работы в веб интерфейсе сделать
just build
# Запустить веб-интерфейс (http://127.0.0.1:8000)
just webГотовые пресеты находятся в папке presets/. Каждый файл описывает один эксперимент. Полная JSON-схема пресета расположена в schems/preset-schema.json (общие определения - schems/common-defs.json). Минимальный пример см. в presets/example.json.
на выходе будет json результат схемы schems/result-schema.json
Билалов Тимур
Горбов Георгий
Кулаковский Владислав
Погребицкий Георгий
Балюк Иван