# Контейнер и нагрузка ## Цель Упаковать сервис в Docker и измерить latency/throughput. ## Теория перед выполнением - [Инференс: контейнер, производительность и ёмкость](../notes/02_inference_api_docker_onnx.md) - [Registry, tracking и CI](../notes/03_registry_tracking_ci.md) ## Что сделать 1. Собрать воспроизводимый образ сервиса с фиксированными зависимостями. 2. Запустить контейнер без root и задать ограничения CPU/RAM. 3. Подготовить реалистичный профиль нагрузки, warm-up и steady-state этап. 4. Измерить p50/p95, throughput, error rate и пиковую память. 5. Найти предел устойчивой нагрузки и описать поведение backpressure. 6. Зафиксировать команды, окружение и результаты в [отчёте](../../../common/REPORT_TEMPLATE.md). ## Результат Dockerfile, команды запуска и отчёт нагрузочного теста. Решение разместите рядом в `solution/`. Не коммитьте большие данные, веса или секреты. ## Критерии приёмки - Образ воспроизводим; указаны p50/p95 и пределы памяти. - Код читаем, разбит на функции и запускается по инструкции. - Выводы подтверждаются измерениями и не выходят за пределы эксперимента. ## Вопросы для самопроверки - Воспроизводится ли образ из чистого окружения? - Соответствует ли профиль теста реальным payload и concurrency? - При какой нагрузке начинают расти p95 и ошибки? - Какой ресурс первым ограничивает throughput и как это доказано?