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