Как находить и устранять утечки памяти в долгоживущем сервисе?
Включите tracemalloc и снимайте снэпшоты до/после нагрузки, ищите рост по трассам; проверяйте циклы gc.get_objects() и gc.garbage, избегайте __del__ на участниках циклов, используйте weakref для обратных ссылок. Ограничивайте кэши (lru_cache(maxsize=…)), следите за «вечно живущими» задачами asyncio, закройте пулы/соединения и проверяйте, что обработчики событий не держат замыкания на большие объекты.
Библиотека собеса по Python
Post #1262
786