반응형

connection-pool 2

DB는 느리지 않은데, API는 왜 느려질까?

트래픽이 많은 서비스를 운영하다 보면, 다음과 같은 상황을 자주 마주하게 됩니다.DB 모니터링 지표는 정상이고쿼리도 특별히 느리지 않은데API 응답은 점점 느려지거나 타임아웃이 발생한다이럴 때 가장 많이 나오는 말은 보통 이겁니다.“DB는 멀쩡한데요?”이 글에서는 이 현상을 DB 성능 문제가 아니라 DB Connection Pool이라는 동시성 경계 관점에서 설명합니다.DB는 느린데만 문제가 되는 게 아니다DB 문제가 항상 “쿼리가 느려진다”로 나타나는 것은 아닙니다.실무에서 더 자주 문제 되는 패턴은 이것입니다.DB는 일정한 속도로 응답하고 있는데애플리케이션 쪽에서 대기 시간이 발생한다이때의 병목은 쿼리 실행 시간이 아니라 DB에 접근하기 전 단계에 존재합니다.바로 Connection Pool입니다.C..

항상은 아니고, 가끔만 터지는 타임아웃의 정체

트래픽이 많은 서비스를 운영하다 보면, 가장 판단하기 어려운 유형의 문제가 있습니다.“항상 터지는 것도 아니고, 가끔씩만 타임아웃이 발생한다.”장애라고 부르기엔 애매하고, 그렇다고 무시하기엔 계속 신경 쓰입니다.특정 시간대에만일부 요청에서만잠깐 발생했다가 다시 정상으로 돌아옴이런 문제는 재현도 어렵고, 원인을 특정하기도 어렵습니다.이 글에서는 이 현상을 불안정한 시스템 문제가 아니라시스템이 가진 동시성 한계가 드러나는 구조적 현상으로 바라봅니다.간헐적 타임아웃이 보일 때의 공통적인 신호이 유형의 타임아웃에는 반복해서 나타나는 특징이 있습니다.CPU와 메모리는 여유 있어 보인다Pod 수를 늘려도 완전히 사라지지 않는다평균 응답 시간(p50)은 정상이다p95, p99 같은 tail latency만 튄다이 조..

반응형