1.9 KiB
Балансировщики нагрузки: лабораторная работа
Откройте 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