Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Когда приложение-контейнер масштабируется до нуля в периоды бездействия, следующий входящий запрос запускает холодный запуск. Холодный старт — это длительный процесс загрузки образа контейнера, подготовки ресурсов и запуска кода приложения.
Эта задержка влияет на взаимодействие с пользователем, особенно для приложений, требующих быстрого времени отклика. Холодные запуски часто заметны в сценариях, связанных с большими образами контейнеров, сложной инициализацией приложений или нагрузками на искусственный интеллект и машинное обучение.
Это руководство помогает снизить время холодного запуска в приложениях контейнеров Azure.
Оптимизация размера образа контейнера
Рабочие нагрузки машинного обучения и искусственного интеллекта часто связаны с объемными образами контейнеров. По возможности уменьшите размер этих изображений как можно больше и исключите любое использование ненужных библиотек.
Часто изображения переходят от фазы обучения к фазе вывода с минимальными изменениями. Не забудьте проверить контейнеры, чтобы удалить средства разработки и зависимости, необходимые только для разработки моделей при подготовке контейнера к использованию вывода.
Избегайте далеких реестров образов
Используйте реестры контейнеров, близкие к среде "Приложения контейнеров". Обычно это означает, что вы хотите использовать реестр контейнеров Azure, развернутый в том же регионе, что и ваша среда, или реестр уровня "Премиум", который включает глобальное распределение.
Управление большими загрузками
Используйте точки подключения хранилища для размещения критически важных данных рядом с вашим контейнерным приложением, особенно когда размер файлов великий. Например, если приложению требуется большая языковая модель, можно предварительно скачать модель в учетную запись хранения. Считывая большие файлы из учетной записи хранения, вы избегаете задержки извлечения файлов через Интернет.
Если вы создаете подключение хранилища для рабочих нагрузок ИИ, убедитесь, что вы используете наиболее подходящие варианты подключения для ваших потребностей.
Реализуйте настраиваемую проверку готовности состояния системы или начните раннюю проверку активности.
Приложения контейнеров Azure автоматически настраивают пробу активности при включении входящего трафика. Изображениям и приложениям требуется много времени для запуска после загрузки образа, что может вызвать проблемы с контейнером. Приложения-контейнеры могут прекратить работу начального приложения, так как оно не проходит проверку готовности.
Чтобы решить проблему, чтобы предотвратить преждевременное убийство образа, реализуйте пользовательскую пробу активности, чтобы разрешить более длительные запуски. Кроме того, вы можете прослушивать выделенный целевой порт для простых подключений ранее в цикле запуска, чтобы инициализировать приложение после открытия порта.
Размещение на стороне клиента
Время холодного запуска зависит от приложения. Чтобы минимизировать восприятие этого времени, настройте клиентов, чтобы учитывать задержку.
Уведомление пользователей о том, что определенный запрос может занять больше времени, и возможность повторных попыток являются важными. Вы также можете усилить код, чтобы избежать непредвиденных тайм-аутов, которые превышают то, что приложение может корректно обработать.
Инструментирование на стороне приложения
Для устранения проблем с производительностью реализуйте метрики производительности на стороне приложения и ведение журнала для каждого этапа жизненного цикла приложения.
Упреждающее пробуждение приложения
Если приведенные выше рекомендации не обеспечивают нужную производительность, разбудите приложение перед фактическим использованием. Например, попробуйте настроить задание на 9 утра, чтобы активировать приложение до начала рабочего дня сотрудников. Этот подход может исключить долгое время запуска, сохраняя возможность масштабирования до нуля для экономии затрат, когда приложение не используется.