Вопрос проверяет практический опыт эксплуатации ML-сервисов и умение находить причины нестабильной работы моделей в продакшене.
Утечки памяти диагностируются через метрики потребления RAM и GPU во времени. Важно отличать рост памяти при загрузке модели от неконтролируемого накопления. Используются профилировщики, логи и health-check’и. Падения часто связаны с OOM, некорректными входными данными или ошибками нативных библиотек. Диагностика требует комбинации мониторинга и локального воспроизведения проблемы.
ML-модели в продакшене часто работают неделями без перезапуска, поэтому проблемы с памятью становятся критичными.
Определение:
Утечка памяти — это ситуация, при которой приложение со временем потребляет все больше памяти без освобождения, несмотря на стабильную нагрузку.
Основные подходы к диагностике:
Мониторинг ресурсов
Графики RAM и GPU memory
Поиск линейного или ступенчатого роста
Сравнение idle и peak состояний
Анализ логов и crash-репортов
Ошибки OOMKilled
Segmentation fault в нативных библиотеках
Некорректные входные данные
Профилирование памяти
Python-профилировщики
Точечные замеры до и после inference
Проверка кэшей и глобальных объектов
# Пример идеи: фиксировать потребление памяти до и после вызова модели
log_memory_usage()
model.predict(data)
log_memory_usage()Рестарт-стратегии
Graceful restart контейнеров
Ограничение времени жизни pod’ов
Краткий вывод:
Диагностика утечек памяти — это постоянный процесс, основанный на метриках, логах и контролируемых перезапусках.