Files
hse-2026/materials/08-scaling/seminar/load-balancing-lab
2026-11-04 19:23:39 +03:00
..
2026-11-04 19:23:39 +03:00
2026-11-04 19:23:39 +03:00
2026-11-04 19:23:39 +03:00
2026-11-04 19:23:39 +03:00
2026-11-04 19:23:39 +03:00
2026-11-04 19:23:39 +03:00
2026-11-04 19:23:39 +03:00
2026-11-04 19:23:39 +03:00

Балансировщики нагрузки: лабораторная работа

Откройте Lab.ipynb в JupyterLab или редакторе с поддержкой Jupyter и выполните ячейки по порядку. Нужны Python, JupyterLab, NumPy и Matplotlib:

python -m pip install jupyterlab numpy matplotlib

В основной части три раздела и 10 прогонов. В конце есть дополнительный эксперимент с одинаковыми seed у балансировщиков: его можно оставить для самостоятельного разбора.

Симулятор написан на Rust с библиотекой simcore. По умолчанию ноутбук запускает его в Docker. Перед первым запуском и после изменения Rust-кода соберите образ из этой папки:

docker build -t distsys-load-balancing-lab:local .

Для запуска без Docker установите Rust версии, указанной в rust-toolchain.toml в корне репозитория, и задайте USE_DOCKER = False в ноутбуке. Тогда cargo run --locked --release соберёт текущие исходники автоматически.

На графиках показан p99 времени ответа для запросов, пришедших в окно [t, t + 60) секунд. Время ответа включает ожидание в очереди и обслуживание. Смысл метрики и параметры экспериментов разобраны в ноутбуке. После изменения симулятора или параметров пересчитайте графики.

Проверка симулятора при установленном Rust:

cargo test --locked