# Балансировщики нагрузки: лабораторная работа Откройте `Lab.ipynb` в JupyterLab или редакторе с поддержкой Jupyter и выполните ячейки по порядку. Нужны Python, JupyterLab, NumPy и Matplotlib: ```bash python -m pip install jupyterlab numpy matplotlib ``` В основной части три раздела и 10 прогонов. В конце есть дополнительный эксперимент с одинаковыми seed у балансировщиков: его можно оставить для самостоятельного разбора. Симулятор написан на Rust с библиотекой simcore. По умолчанию ноутбук запускает его в Docker. Перед первым запуском и после изменения Rust-кода соберите образ из этой папки: ```bash 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: ```bash cargo test --locked ```