* Elasticsearch 를 스터디 및 운영하면서 정리한 내용 모음집

인덱스당 적정한 샤드와 레플리카 수

  • 클러스터내 노드 사이에 이동하는 가장 작은 단위의 파일
  • 샤드의 개수는 인덱스가 아닌 노드와 밀접한 관련
  • (김종민 elastic avangelist)경험상 1개 노드에 700개 이상의 샤드가 쌓이지 않게 하는 것이 중요
  • 그 이상이 되는 경우 Disk I/O, Network I/O로 인한 병목 현상 심각

인덱스당 적절한 사이즈

  • 위와 같은 이유로 인덱스당 사이즈가 아닌 샤드당 사이즈가 중요
  • 샤드의 1개 사이즈는 20~30GB 권고
  • 검색 위주의 클러스터면 20GB에 가까울수록 좋고, 단순 로깅 목적이라면 50GB 까지도 고려가능

오래된 인덱스를 관리할 방법?

검색 속도 튜닝

  • 참고페이지: https://www.elastic.co/guide/en/elasticsearch/reference/master/tune-for-search-speed.html
  • 파일 시스템 캐시에 메모리 부여
  • SSD, 빠른 CPU 사용
  • Document Modeling
    • 가능한 가벼운 검색이 될수있도록 모델링
    • nested, parent-child 구조는 검색이 느려지게 함
  • 가능한 한 적은 수의 필드 검색
    • ‘query_string’ or ‘multi_match’ 쿼리에서 대상 필드가 많을 경우 느려짐
    • ‘copy_to’ 를 활용하면 쿼리 대상 필드를 줄여서 쿼리할 수 있음
  • 숫자 필드의 경우 keyword 보다는 integer 또는 long 으로 매핑
  • Adaptive Replica Selection

인덱싱 성능 고려사항

index를 close 할 때의 이점

  • 참고페이지: https://www.elastic.co/guide/en/elasticsearch/reference/6.3/indices-open-close.html
  • close는 말 그대로 메모리에 안 띄워두고 파일을 닫아둠
  • 저장공간 빼곤 일체의 리소스를 차지 안함
  • ES 샤드 형태로 오래도록 저장해두고, 검색이 필요없는 경우 close 적합
  • 인덱스가 필요해지면 open해서 사용가능
  • elasticsearch 6.6부터 frozen indices 기능 추가
    • 기본적으로 close indices와 같음
    • 검색요청이 들어오면 open 하여 검색하고 자동으로 다시 close 시킴