Skip to content

사용자 사전 등록 방식에 따른 시스템 부하 테스트 결과

띵샵 검색엔진에서 사용자 정의 사전(user_dictionary) 적용 방식에 따라 검색 성능 및 시스템 부하에 유의미한 차이가 발생함을 확인하였습니다. 특히 기존에는 OpenSearch 인덱스 설정(settings.user_dictionary_rules)에 사전 데이터를 직접 입력하였으나, 대규모 사전(약 60,000건) 반영 이후 성능 저하 및 시스템 불안정 이슈가 발생하였습니다.

이에 .txt 외부 파일 참조 방식으로 변경 시 성능 개선 가능성을 검증하기 위해, 동일 조건에서 벤치마크 테스트를 진행하였습니다.

2. 테스트 조건

항목
요청 수량 10,000건
동시 요청 수 500 Thread
비교 방식 settings 직접 입력 방식 vs .txt 파일 참조 방식
테스트 환경 동일 클러스터, 동일 검색 API

3. 성능 비교 결과

항목 settings 방식 .txt 방식 차이 분석 (.txt 기준)
총 실행 시간 (초) 20.64 11.68 ▼ 8.96초 감소 (43.4%)
TPS (초당 요청 수) 484.44 856.08 ▲ +76.7% 향상
OpenSearch Took 평균 (ms) 754.76 288.85 ▼ 61.7% 감소
OpenSearch Took P99 (ms) 6873.0 1336.0 ▼ 매우 큰 차이
전체 응답 시간 평균 (ms) 1016.61 565.37 ▼ 44.4% 감소
Query Profile 평균 (ms) 6.80 1.55 ▼ 77.2% 감소

4. 개선 방향 및 제안

권고 사항

  • 사용자 정의 사전은 settings 직접입력 대신 .txt 파일 참조 방식으로 운영 전환 필요.

  • OpenSearch 컨테이너 내 /usr/share/opensearch/config/userdict.txt 경로 등 활용 권장.

적용 작업 내역

구분 작업 내용 비고
1 검색 API(search-nest) 서버와 OpenSearch 서버 간 통신 확인 방화벽 및 보안 그룹 점검, 필요시 내부 프록시/VPN 구성
2 사용자 사전 적용 방식 변경 기존 settings.user_dictionary_rules 제거 → tokenizeruser_dictionary 경로 설정으로 교체. 배포 필요

5. 결론

.txt 참조 방식은 대규모 사전 환경에서도 성능 저하 없이 안정적인 운영이 가능하며, 클러스터 리로드나 노드 재배치 등에도 영향이 적습니다.
장기적인 관점에서 검색 품질 유지와 운영 효율성을 동시에 확보할 수 있는 방안으로 판단됩니다.