사용자 사전 등록 방식에 따른 시스템 부하 테스트 결과
띵샵 검색엔진에서 사용자 정의 사전(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 제거 → tokenizer 내 user_dictionary 경로 설정으로 교체. 배포 필요 |
5. 결론
.txt 참조 방식
은 대규모 사전 환경에서도 성능 저하 없이 안정적인 운영이 가능하며, 클러스터 리로드나 노드 재배치 등에도 영향이 적습니다.
장기적인 관점에서 검색 품질 유지와 운영 효율성을 동시에 확보할 수 있는 방안으로 판단됩니다.