루씬 벤치마킹 유틸리티
루씬에는 성능 측정을 위해 Luceneutil이라는 벤치마크 유틸리티가 제공된다.(깃허브에 소스코드 공개)
https://github.com/mikemccand/luceneutil
GitHub - mikemccand/luceneutil: Various utility scripts for running Lucene performance tests
Various utility scripts for running Lucene performance tests - mikemccand/luceneutil
github.com
이 유틸리티를 이용해 특정 데이터를 반복 테스트해서 벤치마킹 결과를 실시간으로 확인할 수 있게 사이트를 공개하고 있다.
https://benchmarks.mikemccandless.com/indexing.html
Lucene nightly indexing benchmark
benchmarks.mikemccandless.com
1) 색인 성능 측정: 색인 성능 측정
- indexing throughput: 일반적인 문서 색인 처리량
- Analyzers throughput: 분석기를 거치는 문서 색인 처리량
- Near-real-time refresh latency: 세그먼트 Refresh 작업 처리 시 지연 시간
2) Boolean 쿼리 성능 측정: Boolean 쿼리 성능 측정(아래 쿼리 반복 실행)
- +high-freq +high-freq
- +high-freq +medium-freq
- high-freq high-freq
- high-freq medium-freq
- +high-freq +(medium-freq medium-freq)
- +high-freq +(high-freq high-freq)
3) proximity 쿼리 성능 측정: 근사값 쿼리 성능 측정
- Exact pharse: phrase 쿼리 성능 측정
- Sloppy(~4) phrase: Slop 값을 4 이하로 설정하고 성능 측정
- Span near(~10): Slop 값을 10 이하로 설정하고 성능 측정
4) Faceting 성능 측정: Grouping 성능 측정
- Term query + date hierarchy
- All dates hierarchy
- All months
- All months (doc value)
- All dayOfYear
- All dayOfYear(doc value)
5) Term 쿼리를 이용한 정렬 성능 측정: 텀쿼리 성능 측정
- Date/time(long, high cardinality): 날짜 타입의 텀 쿼리로 정렬
- Title(String, high cardinality): 긴 문자열 타입의 텀 쿼리로 정렬
- Month(String, low cardinality): 짧은 문자열 타입의 텀 쿼리로 정렬
- Day of year(int, medium cardinality): 숫자 타입의 텀 쿼리로 정렬
엘라스틱서치 Rally
엘라스틱서치에서는 루씬에서 제공하는 유틸리티를 기반으로 클러스터의 성능을 측정할 수 있는 Rally를 제공한다.
https://github.com/elastic/rally
GitHub - elastic/rally: Macrobenchmarking framework for Elasticsearch
Macrobenchmarking framework for Elasticsearch. Contribute to elastic/rally development by creating an account on GitHub.
github.com
https://benchmarks.elastic.co/index.html
Benchmarks for the Elastic Stack
This page lists the various benchmarks we run for different projects within Elastic. They are created by the developers themselves, and focus on the most important performance metrics.
benchmarks.elastic.co
해당 사이트는 클러스터의 벤치마크 결과를 키바나로 시각화해서 제공하기 때문에 각종 지표를 손쉽게 이해할 수 있다.
벤치마크에 사용되는 서버는 총 4대의 물리서버에서 클러스터가 구축되었으며, 성능 지표는 아래와 같다.

1) Geonames: Structured Data 성능 측정
- 1000만 개의 문서를 색인하고 다양한 전문 쿼리(match, fuction_score) 및 집계를 실행한 결과를 보고서로 제공
2) Geopoint: Geo Queries의 성능 측정
- 6천만 개의 위치 문서를 색인하고 다양한 지리적 기반 쿼리를 실행한 결과를 보고서로 제공
3) Percolator: Percolation Queries의 성능 측정
- 2백만 건의 AOL 질의 색인 작성 및 그에 따른 Percolation 질의 실행 결과를 보고서로 제공
4) PMC: 전문 검색 성능을 측정한다.
- 색인 성능을 측정하고 과학 논문의 코퍼스에서 쿼리 및 집계를 실행하는 전문 쿼리를 실행한 결과를 보고서로 제공
5) NYC Taxis: Highly Structured Data의 성능 측정
- 복잡한 구조의 문서로 제공된 2015년 뉴욕의 택시 데이터를 분석, 성능을 측정한 결과를 보고서로 제공
6) Nested: Nested Documents의 성능 측정
- 스택오버플로의 질문과 답변을 이용해 Nested Document를 구성한 데이터를 분석, 성능을 측정한 결과를 보고서로 제공
7) Http Logs: 아파치 웹 서버 로그의 성능 측정
- 1998년 월드컵 공식 웹서버의 로그를 분석하고 성능을 측정한 결과를 보고서로 제공
8) NOAA: Range Fields의 성능 측정
- NOAA에서 제공하는 날씨 데이터를 이용해 Range Field의 성능을 측정한 결과를 보고서로 제공
'Elastic Search' 카테고리의 다른 글
| Ch13. 클러스터 성능 측정 - 키바나를 이용한 성능 모니터링 (0) | 2025.11.05 |
|---|---|
| Ch13. 클러스터 성능 측정 - Rally를 이용한 클러스터 부하 테스트 (0) | 2025.11.05 |
| Ch12. 안정적인 클러스터 운영 노하우 - 안정적인 클러스터 운영을 위한 주요 체크포인트 (0) | 2025.10.21 |
| Ch12. 안정적인 클러스터 운영 노하우 - 클러스터 관리 API (0) | 2025.10.21 |
| Ch12. 안정적인 클러스터 운영 노하우 - 마스터 노드와 데이터 노드 분리 (0) | 2025.10.21 |