DB Connection 고갈 장애 분석 - 증상부터 원인 추적, 복구까지
운영 중 자주 발생하는 장애 중 하나인 데이터베이스 커넥션 고갈 문제를 실무적으로 분석합니다. 애플리케이션 풀 설정, 느린 쿼리, 커넥션 누수, 트래픽 급증 등 원인과 단계별 대응 방법을 설명합니다.
TestForge Team ·
어떤 증상으로 나타나는가
DB connection 고갈은 아래 같은 현상으로 먼저 보입니다.
- API 응답 지연 급증
- timeout 증가
- 애플리케이션 에러 로그에서 pool exhausted
- DB에서 too many connections
처음에는 DB 장애처럼 보이지만, 실제 원인은 애플리케이션 계층일 때도 많습니다.
원인 후보를 나눠보자
대표 원인:
- connection pool 설정 과도
- 커넥션 반환 누락
- 느린 쿼리 증가
- 트래픽 급증
- 장시간 트랜잭션
중요한 건 “DB가 약해서”라고 단정하지 않는 것입니다.
장애 시 먼저 볼 것
- 애플리케이션 풀 사용량
- DB active session 수
- 느린 쿼리 여부
- 최근 배포 여부
- 트래픽 급증 여부
이 순서로 보면 원인 범위를 빨리 줄일 수 있습니다.
흔한 실수
max pool size만 늘림
당장은 버틸 수 있어도 DB에 더 큰 부하를 줄 수 있습니다.
DB max_connections만 늘림
근본 원인 없이 숫자만 늘리면 더 큰 병목으로 이어집니다.
slow query 분석 없이 앱 재시작 반복
증상만 잠깐 숨기고 다시 반복될 가능성이 높습니다.
대응 전략
단기
- 과도한 트래픽 차단
- 문제 인스턴스 격리
- 비정상 쿼리 중단
- 필요 시 앱 재기동
중기
- pool 설정 조정
- slow query 튜닝
- 커넥션 누수 분석
- read/write 분리 검토
장기
- DB 모니터링 강화
- 트랜잭션 경계 재설계
- 캐시 전략 도입
- 부하 테스트로 재현
마무리
DB connection 고갈 장애는 데이터베이스만의 문제가 아니라, 애플리케이션 풀 설정, 쿼리 품질, 트래픽 패턴이 함께 만든 결과인 경우가 많습니다.
장애 대응에서는 숫자를 키우는 것보다, 어디서 connection이 막히고 있는지 먼저 보는 것이 더 중요합니다.