Skip to content

feat(backend): add request-level performance metrics and reduce RAG top_k for latency optimization#59

Merged
youneedpython merged 1 commit into
devfrom
feat/backend-performance-metrics
Feb 25, 2026
Merged

feat(backend): add request-level performance metrics and reduce RAG top_k for latency optimization#59
youneedpython merged 1 commit into
devfrom
feat/backend-performance-metrics

Conversation

@youneedpython
Copy link
Copy Markdown
Owner

📌 개요

본 PR은 백엔드 처리 시간을 정량적으로 분석하기 위한 성능 계측 구조를 도입하고,
RAG 조회(top_k) 최적화를 통해 전체 요청 지연 시간을 개선하는 것을 목표로 합니다.

기존에는 체감 기반 개선이었으나,
이번 작업을 통해 요청 단위 및 구간별(latency span) 성능 분석이 가능하도록 구조를 정비하였습니다.


🔍 주요 변경 사항

1️⃣ 성능 계측 구조 도입

  • 요청 단위 T0 ~ T7 라이프사이클 계측 추가
  • span 기반 세부 지연 시간 측정:
    • RAG 조회 시간
    • 프롬프트 구성 시간
    • LLM 실행 시간
    • DB 작업 시간
  • METRIC 구조 로그 도입 (운영 모니터링용)
  • middleware 내 request_id 라이프사이클 정리

이를 통해 실제 병목 구간을 수치로 확인할 수 있는 구조로 전환함.


2️⃣ RAG 조회 최적화

  • Pinecone top_k 값을 6 → 4로 축소
  • 컨텍스트 길이 약 4700자 → 3100자 수준으로 감소
  • RAG 조회 평균 지연 시간 유의미하게 감소

📊 로컬 테스트 결과

항목 변경 전 (k=6) 변경 후 (k=4)
RAG 조회 시간 평균 약 1.7~2.0초 평균 약 0.5~0.6초
LLM 실행 시간 평균 약 4.1초 평균 약 4.4초
전체 요청 시간 평균 약 5.8~6초 평균 약 5.0~5.2초

분석 결과

  • Pinecone 내부 지연은 안정적 (p50 약 0.4~0.5초)
  • 주요 병목은 LLM 추론 시간(약 4초 수준)
  • DB 작업은 전체 지연에 거의 영향 없음
  • RAG 최적화를 통해 평균 약 1초 내외 개선

🎯 기대 효과

  • 백엔드 처리 시간의 구조적 가시성 확보
  • 병목 구간 명확화 (LLM 중심 구조)
  • 향후 토큰 전략/스트리밍 도입을 위한 기반 마련
  • 운영 환경(EB)에서 실측 기반 성능 모니터링 가능

🔜 다음 단계

  • 출력 토큰 전략 조정 검토
  • Streaming 응답 구조 도입
  • EB 운영 환경에서 실측 데이터 수집
  • metadata filter 활용한 추가 RAG 최적화

@youneedpython youneedpython self-assigned this Feb 25, 2026
@youneedpython youneedpython merged commit 631d88a into dev Feb 25, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant