WEBBOOK CHAPTER

웹서비스 트러블슈팅, 증거로 고치는 법: 18장. Database Connection Pool

18장. Database Connection Pool

API latency를 query execution과 pool acquire wait로 나눈다. pool wait가 3.8초인데 DB query가 188ms라면 query 튜닝만으로 해결되지 않는다. active/idle/pending, transaction age, leak stack, pod별 pool을 본다.

pod 수 × pool max가 DB max를 넘지 않게 하고 admin/migration 여유를 남긴다. idle transaction, 외부 API를 기다리는 transaction, response 뒤 미반환 connection을 찾는다.

완화는 traffic 제한, 누수 revision rollback, 오래된 작업 cancel 순으로 영향을 검토한다. DB session kill은 rollback과 retry를 일으킨다. db-lock.md를 따른다.