FastAPI + SQLAlchemy 2.0 (async). Под нагрузкой растёт latency, пул соединений к БД забит, запросы «висят». Как диагностировать и починить без тупого увеличения пула?
Включить метрики/логирование пула (в т.ч. pool_size, overflow, время ожидания), найти долгие запросы (slow query log/EXPLAIN) и утечки сессий. Гарантировать жизненный цикл через контекст: async with AsyncSession() as s: .../sessionmaker, закрывать курсоры. Настроить pool_pre_ping/pool_recycle, таймауты (connect/statement). Ввести backpressure: лимитировать параллелизм (Semaphore/очередь), кратковременно ретраить. Оптимизировать SQL/индексы; при необходимости — кэш/батчи/денормализация.
Библиотека собеса по Python
Post #1049
1.09K
- 👍 2
- ❤ 1