🗄️database / postgresql

Исчерпание пула соединений PostgreSQL

middle25 min🏢 E-commerce platform (Series B, ~50M MAU)
PostgreSQLHikariCPJavaSpring BootConnection Pooling

Стек технологий

  • Java 11
  • Spring Boot 2.7
  • PostgreSQL 14
  • HikariCP 4.0
  • Kubernetes
🚨

Сценарий инцидента

Сейчас 14:30 в Чёрную пятницу. Мониторинг начал бить тревогу: время ответа резко возросло.
Вчерашний нагрузочный тест показал, что система выдерживает 800 RPS.
Сейчас нагрузка 650 RPS, и всё деградирует.
Ваша смена дежурного начинается через 2 минуты. Найдите узкое место.

🔍 Артефакты расследования

Раскрывай артефакты один за другим. Каждая улика приближает тебя к корневой причине.

📊
Улика #1 · graph
Время ответа за 30 минут
💡 Обратите внимание на резкую деградацию ровно через 15 минут стабильной нагрузки
📋
Улика #2 · log
Логи приложения (последние 100 строк)
💡 Ищите сообщения, связанные с соединениями, и их временны́е метки
🔍
Улика #3 · query
Активные соединения PostgreSQL
💡 Что показывает pg_stat_activity о состоянии соединений?
⚙️
Улика #4 · config
Конфигурация HikariCP и код OrderService
💡 Посмотрите, что происходит внутри @Transactional — есть ли там то, чего там быть не должно?