Оптимизация GC Python: Как одна строка кода уменьшила время ответа ML-сервиса в 2 раза

Аватар автора
AvitoTech
В Сервис для инференса моделей PyTorch демонстрировал нестабильную работу: время обработки идентичных запросов варьировалось от 45 до 200-300 миллисекунд. При этом CPU не был перегружен, утечек памяти не было, дисковая подсистема работала нормально, а стандартные профайлеры (py-spy, cProfile) не выявляли аномалий. Корень проблемы оказался в сборщике мусора (GC), который мог запускаться десятки раз в рамках одного запроса. На примере этого кейса Александр Федосеев, бэкенд-инженер в Авито, рассказывает: ✅как диагностировать проблему с GC, если традиционные профайлеры его не показывают? ✅ каковы методы сбора и интерпретации метрик сборщика мусора? ✅ каковы две оптимизации, которые позволили снизить P99-латентность с 85 мс до 45 мс? ✅ когда эти оптимизации могут навредить и частые ошибки при настройке GC? ✅ и почему версия Python критически важна для конфигурации сборщика мусора? AvitoTech — это команда инженеров Авито. Подпишитесь на наш канал, соцсети и блоги, чтобы узнавать больше о технологиях Авито 👇🏻

0/0


0/0

0/0

0/0