NestJS · Performance

성능 모니터링에서 느린 구간 분해하기

성능 모니터링은 평균 응답 시간을 보는 데서 멈추지 않고, route별 지연을 DB·외부 API·serialization·event loop로 나눠 원인을 좁혀야 한다.

01

느린 경로 찾기

전체 평균보다 endpoint와 status별 p95, p99를 먼저 본다.

02

구간 계측

guard, pipe, service, repository, 외부 API 호출 시간을 span으로 나눈다.

03

원인 확인

slow query log, heap snapshot, event loop lag, trace waterfall로 후보를 검증한다.

04

개선 비교

index, cache, pagination, batch 적용 전후 같은 부하에서 지표를 비교한다.

p95 latency
체감 지연 대부분의 사용자가 겪는 느린 응답을 보여줌
평균보다 장애 감지에 유용
Slow query
DB 비용 index 누락, N+1, transaction lock을 확인
실행 계획 확인
Event loop
Node 포화 동기 계산과 큰 JSON 처리로 요청 처리가 막힘
작업 분리 검토
Trace
호출 경로 외부 API나 내부 서비스 중 어디서 지연되는지 연결
sampling 정책 필요

기준선 · 구간 · 회귀 점검

기준선 개선 전 지표와 부하 조건이 저장돼 있다.
구간 전체 응답 시간만 있고 내부 span이 없는 상태를 피한다.
회귀 최적화 후 핵심 route 지표를 모니터링한다.
알림 사용자 영향이 있는 지연 증가가 알림으로 이어진다.