목록 보기
다나와 검색의 색인 최적화 사례
백엔드

다나와 검색의 색인 최적화 사례

다나와
다나와
2024년 11월 25일

두줄요약

Elasticsearch 동적 색인에서 발생한 CPU 과부하와 정합성 문제를 BulkProcessor와 백프레셔로 개선했습니다. 운영 로그와 테스트에서 안정성을 높이면서도 처리 시간은 유사하게 유지했습니다.

문제 상황

  • Elasticsearch 기반 동적 색인에서 대량 유입으로 CPU 부하와 힙 메모리 사용량 급증
  • 샤드 이동, 색인 요청 거절, 원본 DB와 ES 간 정합성 문제, 검색 API 지연 발생

원인 분석

  • 잦은 세그먼트 생성으로 Disk I/O와 CPU 사용량 증가
  • MQ 메시지 수신 후 즉시 단건처럼 Bulk API 호출하는 비효율적 버퍼링 구조
  • ES CPU 상태를 고려하지 않는 색인 요청과 코디네이터 노드 부재

해결 방법

  • BulkProcessor API로 요청을 모아 배치 색인 처리
  • 커스텀 Request와 afterBulk 로그로 호출처, 타겟 인덱스, 작업 유형 추적
  • ES CPU 모니터링 기반 백프레셔와 프록시 서버 도입, busy-waiting 방식으로 색인 속도 조절

성능/운영 포인트

  • CPU 80% 도달 전 색인 속도 제어로 시스템 안정성 확보
  • 운영 로그 기준 동적 색인 피크 시간대에도 전체 노드 CPU 80% 미만 유지
  • 연결 끊김 해소와 검색 응답 지연, 데이터 불일치 개선

댓글 0

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

댓글을 불러오는 중...