반응형
Recent Posts
Recent Comments
관리 메뉴

개발잡부

[es] Elasticsearch Cache 본문

ElasticStack/Elasticsearch

[es] Elasticsearch Cache

닉의네임 2023. 11. 24. 09:01
반응형

페이지 캐시 - 쿼리에서 실제로 읽은 이 데이터의 양에 관계없이 데이터를 캐시

페이지 캐시의 기본 개념은 디스크에서 데이터를 읽은 후 사용 가능한 메모리에 데이터를 넣는 것 다음 읽기는 메모리에서 반환되고 데이터를 가져오는 데 디스크 탐색이 필요 없음

샤드레벨 요청캐시 - 유사한 쿼리를 사용할 때 데이터를 캐시

집계로만 구성된 검색 응답을 캐싱

구성 요소는 IndicesRequestCache 클래스 - 이 메서드는 쿼리 단계를 실행할 때 SearchService 내에서 사용

이 캐시는 기본적으로 활성화되어 있고, 총 힙의 최대 1%를 차지

요청별 구성 -요청 매개 변수를 통해 캐시를 활성화

결과를 반환하지 않는 검색 요청에 대해 활성

 

확인

GET /_nodes/stats/indices/request_cache?human

쿼리 캐시 - 서로 다른 쿼리 간에 재사용되는 데이터를 캐시

서로 다른 결과를 반환하지만 동일한 시간대 내에 있습니다. 여기서 쿼리 캐시가 제공됩니다. 쿼리의 해당 부분만 캐시할 수 있음.

문서에 대한 비트세트 구성

  • 세그먼트별 비트세트 생성 후 필터실행 전 문서를 제외 - 디스크에 엑세스를 수행할 필요가 없음
  • 결합 가능
  • 압축
  • 문서당 하나의 비트가 필요합니다. 그러나 고정 비트 세트가 아니라 Roaring bitmap과 같은 다른 구현을 사용하면 메모리 요구 사항을 줄일 수 있음

 

IndicesQueryCache 클래스 기능을 갖추고 있습니다. 이 클래스는 IndicesService의 수명 주기에 바인딩되어 있습

 

  • indices.queries.cache.count: 총 캐시 항목 수, 기본값은 10,000개입니다.
  • indices.queries.cache.size: 이 캐시에 사용된 Java 힙의 백분율, 기본값은 10%입니다.

 

데이터가 JVM 힙에 있더라도, 가장 일반적인 쿼리 부분만 추적하여 해당 캐시에만 넣는 다른 메커니즘이 있음 - 이 추적은 샤드 레벨에서 수행

 

케싱 정책 (shouldNeverCache 메서드에 추가 규칙이 있음)

  • 기간 쿼리
  • match all/no 문서 쿼리
  • 빈 쿼리와 같은 특정 쿼리의 캐싱을 금지
  • 한 번의 호출로 인해 캐시가 채워지지 않도록 캐싱에 적합한 최소 빈도에 대한 조건

 

확인

GET /_nodes/stats/indices/query_cache?human

 

반응형
Comments