목록 보기
대용량 JSON
백엔드

대용량 JSON

넥스트리
넥스트리
2024년 1월 8일

두줄요약

대용량 JSON 처리에서 발생한 OOM과 세션 제한 문제를 정리했습니다. 요청 지연, Kubernetes Job 분리, HTTP 스트리밍과 MongoDB 최적화로 안정성을 높였습니다.

문제 상황

  • 대용량 JSON 요청·조회 시 파싱 과정에서 OOM 발생
  • 내부망 네트워크 세션 제한 550s, 장시간 처리 시 연결 끊김
  • MongoDB 조회 부하와 JVM 메모리 한계로 인한 성능 저하

원인 분석

  • 여러 요청이 한꺼번에 몰리며 메모리 사용량 급증
  • 큰 JSON을 한 번에 메모리에 올려 처리하는 구조
  • 조회 시 파일 재파싱과 DB 부하가 누적되는 구조

해결 방법

  • DelayQueue와 메모리 사용률 체크로 요청 폭주 시 작업 지연
  • 대용량 JSON 파싱 전용 Kubernetes Job 분리, 스트리밍 방식 처리
  • 조회 응답은 StreamingResponseBody로 즉시 전송하고 MongoDB 인덱스·ReplicaSet·Slice 적용

다음 읽기

#Kubernetes 주제를 이어서 읽기

JVM Heap 설정과 OOMKilled

Kubernetes Pod의 OOMKilled 원인을 Memory Limit만으로 보지 않고 JVM Heap 설정까지 함께 점검했습니다. MaxRAMPercentage를 낮추자 Full GC가 정상 동작하며 재시작 문제가 해소됐습니다.

넥스트리
넥스트리
데브옵스

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...