[#60] Trace Context의 초기화 오류로 발생하는 OOM 문제 해결 #63

Merged
pricelees merged 1 commits from refactor/#60-1 into main 2025-10-14 00:38:46 +00:00
Owner

📝 관련 이슈 및 PR

PR과 관련된 이슈 번호

작업 내용

  • JVM Heapdump 분석 결과 Opentelemetry의 Context가 과도한 메모리를 사용하고 있었음.(Retain 925MB / 파드 메모리 할당 Limit 2GB 중)
  • 원인은, 하나의 요청이 끝날 때 Trace Context가 초기화 되지 않았고, 동일한 Tomcat 스레드에 서로 다른 HTTP 요청의 SPAN이 계속 쌓인 것.
  • Slow-query 를 기록하기 위한 Datasource-Proxy와 충돌이 그 이유였고, 슬로우쿼리 기록은 필요하기에 CurrentTraceContext를 이용하여 필터의 Finally 과정에서 컨텍스트를 정리하도록 수정

🧪 테스트

  • JVM의 Old, Survivor Space에서의 메모리 사용량 감소 확인
  • 동일한 환경 테스트에서 OOM 발생하지 않음.

📚 참고 자료 및 기타

<!-- 제목 양식 --> <!-- [이슈번호] 작업 요약 (예시: [#10] Gitea 템플릿 생성) --> ## 📝 관련 이슈 및 PR **PR과 관련된 이슈 번호** - #60 ## ✨ 작업 내용 <!-- 어떤 작업을 했는지 알려주세요! --> - JVM Heapdump 분석 결과 Opentelemetry의 Context가 과도한 메모리를 사용하고 있었음.(Retain 925MB / 파드 메모리 할당 Limit 2GB 중) - 원인은, 하나의 요청이 끝날 때 Trace Context가 초기화 되지 않았고, 동일한 Tomcat 스레드에 서로 다른 HTTP 요청의 SPAN이 계속 쌓인 것. - Slow-query 를 기록하기 위한 Datasource-Proxy와 충돌이 그 이유였고, 슬로우쿼리 기록은 필요하기에 CurrentTraceContext를 이용하여 필터의 Finally 과정에서 컨텍스트를 정리하도록 수정 ## 🧪 테스트 <!-- 어떤 테스트를 생각했고 진행했는지 알려주세요! --> - JVM의 Old, Survivor Space에서의 메모리 사용량 감소 확인 - 동일한 환경 테스트에서 OOM 발생하지 않음. ## 📚 참고 자료 및 기타 <!-- 참고한 자료, 또는 논의할 사항이 있다면 알려주세요! -->
pricelees added the
Kind/Enhancement
label 2025-10-14 00:38:41 +00:00
pricelees self-assigned this 2025-10-14 00:38:41 +00:00
pricelees added 1 commit 2025-10-14 00:38:41 +00:00
pricelees merged commit 5f2e44bb11 into main 2025-10-14 00:38:46 +00:00
Sign in to join this conversation.
No description provided.