엘라스틱 서치 운영
핵심 개념
- 많은 문서가 캐싱되어 허용된 캐시 메모리 영역이 가득 차면 LRU(Least Recently Used Algorithm) 알고리즘에 의해 캐싱된 문서를 삭제한다
- Shard Request Cache는 샤드를 대상으로 캐싱되는 영역
- Node Query Cache가 검색 엔진에서 활용하기 적합한 캐시 영역이라면 이 Shard Request Cache는 분석 엔진에서 활용하기 적합한 캐시 영역이라 할 수 있다
- Node Query Cache는 문서의 내용을 캐싱
- Shard Query Cache는 집계 쿼리의 결과
- Field Data Cache 영역은 주로 검색 결과를 정렬하거나 집계 쿼리를 수행할 때 지정한 필드만을 대상으로 해당 필드의 모든 데이터를 메모리에 저장하는 캐싱 영역
- 이번에는 불필요하게 사용되는 쿼리에 대해 살펴보자. 문서를 검색할 때 match 쿼리를 많이 사용한다. match 쿼리는 Query Context에 속하는 쿼리이다. Query Context는 analyzer를 통해 검색어를 분석하는 과정이 포함되기 때문에 분석을 위한 추가 시간이 필요하다. 반면에 Filter Context에 속하는 term 쿼리는 검색어를 분석하는 과정을 거치지 않는다. 그렇기 때문에 match 쿼리보다 term 쿼리가 성능이 더 좋다.
- 클러스터 내에 샤드가 많아지면 마스터 노드가 관리해야 하는 정보도 늘어난다.
- ElasticSearch는 레플리카 샤드를 가능한 한 충분히 둘 것을 권고한다. 레플리카 샤드는 데이터 안정성을 확보하는 역할을 할 뿐만 아니라, 검색 요청에 대해 많은 샤드들이 결과를 리턴해 주는 역할을 한다.
- 레플리카 샤드가 많을수록 검색 성능은 더욱 좋아지게 된다. 다만, 레플리카 샤드는 인덱싱 성능과 볼륨 사용량의 낭비가 발생하니 클러스터의 용량을 고려해서 추가하는 것이 좋다.
- 클러스터 용량에 여유가 있다면 레플리카 샤드를 추가로 만들어서 검색 성능의 향상을 기대할 수 있다.
Reference URL
'Engineering WIKI > Book' 카테고리의 다른 글
기초부터 다지는 엘라스틱서치 운영 (12장) / ElasticSearch 클러스터 구축 시나리오 (46) | 2024.04.19 |
---|---|
기초부터 다지는 엘라스틱서치 운영 (10장) / 색인 성능 최적화 (64) | 2024.04.17 |
기초부터 다지는 엘라스틱서치 운영 (9장) / 검색 엔진으로 활용하기 (67) | 2024.04.16 |
기초부터 다지는 엘라스틱서치 운영 (8장) / 분석 엔진으로 활용하기 (70) | 2024.04.15 |
기초부터 다지는 엘라스틱서치 운영 (7장) / 클러스터 성능 모니터링과 최적화 (54) | 2024.04.14 |
기초부터 다지는 엘라스틱서치 운영 (6장) / ElasticSearch 클러스터 운영하기 (33) | 2024.04.06 |
기초부터 다지는 엘라스틱서치 운영 (5장) / ElasticSearch 클러스터 구축 (36) | 2024.03.28 |
기초부터 다지는 엘라스틱서치 운영 (3 ~ 4장) / 모니터링 및 기본개념 (112) | 2023.09.29 |