Сначала измерьте ожидание выдачи соединения, число занятых и свободных соединений, очередь и таймауты именно в пуле приложения или PgBouncer. pg_stat_activity показывает серверные сессии, а не всю очередь пула.
Вы хорошо затронули пул соединений и сравнение планов запросов, а сетевую инфраструктуру упомянули поверхностно. Расскажите, как именно вы проверите насыщение пула соединений в PostgreSQL?
Сначала измерьте ожидание выдачи соединения, число занятых и свободных соединений, очередь и таймауты именно в пуле приложения или PgBouncer. pg_stat_activity показывает серверные сессии, а не всю очередь пула.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Сначала измерьте ожидание выдачи соединения, число занятых и свободных соединений, очередь и таймауты именно в пуле приложения или PgBouncer. pg_stat_activity показывает серверные сессии, а не всю очередь пула.
Сопоставьте занятость с длительностью транзакций, idle in transaction, блокировками и временем SQL. Для PgBouncer полезны SHOW POOLS и SHOW STATS; для ORM — его pool-метрики. Учитывайте суммарный лимит всех экземпляров приложения. Увеличение пула без диагностики может усилить конкуренцию в PostgreSQL, не устранив медленные запросы или утечку соединений.