728x90
Rally 설치
Rally는 파이썬으로 만들어진 애플리케이션으로 정상적으로 동작하기 위해서는 파이썬 3.4 이상이 설치돼 있어야 한다.
- python: 3.4 이상
- pip: 파이썬 패키지를 설치하고 관리하는 툴
- git: 1.9이상
- JDK: 8 이상
pip3 install esrally
- Rally를 설치한다.
esrally configure
- Rally 환경설정
- 최초 한 번은 환경설정 필요
Rally Tracks 옵션
esrally list tracks
- 트랙은 부하 테스트를 진행할 때 사용하는 데이터이다.
- 벤치마크 사이트에서 제공하는 분석 데이터를 그대로 사용할 수도 있다.
- Rally는 실행할 때 부하테스트에 사용할 트랙(색인 데이터)을 선택해야 한다.
트랙 조회
- 랠리를 실행할 때 --track 옵션을 이용해 원하는 트랙 이름을 지정하면 된다.
- 아무런 옵션을 선택하지 않으면 기본 옵션(geonames)으로 실행된다.
Rally Cars 옵션
esrally list cars
- Car(카) 옵션은 부하 테스트를 진행할 엘라스틱서치 노드이다.
- Rally에서는 기본적으로 다양한 Car를 제공하며, 원하는 Car를 선택하면 부하 테스트를 실행할 때 선택한 구성의 엘라스틱서치를 내려받아 자동 설정 후 벤치 마크를 실행한다.
- mixin 타입은 Car에 섞을 첨가제를 의미하며, car와 mixin을 조합하면 테스트 용도로 다양한 구성의 엘라스틱서치를 생성할 수 있다.
- --car="default"가 기본값이다.
레이스 시작하기
esrally --distribution-version=6.2.0
- 레이스를 시작하는 명령어이다
- 처음 실행할 때는 부하 테스트에 필요한 색인 데이터와 엘라스틱서치를 내려받는 시간이 포함되기 때문에 더 많은 시간이 걸린다.
- 실행되는 작업을 실시간으로 보여주기 때문에 진행사항을 한눈에 파악할 수 있다.
- 레이스가 종료되면 결과 보고서가 생성된다.
- 생성된 보고서는 랠리가 설치된 디렉터리 아래에 저장되고 이 결과 데이터를 엘라스티서치로 색인해 키바나로 시각화할 수 있다.
보고서 분석
1) 공통 통계: 전체 작업에 대한 결과를 바탕으로 한 통계(클러스터의 평균적인 성능을 나타냄)
| 지표 | 설명 |
| Indexing time | 색인 성능에 사용된 총 시간 |
| Indexing throttle time | 색인 생성이 제한된 총 시간 |
| Merge time | Merge 작업이 일어난 총 시간 |
| Refresh time | Refresh 작업이 일어난 총 시간 |
| Flush time | Flush 작업이 일어난 총 시간 |
| Merge throttle time | Merge 작업이 제한된 총 시간 |
| Median CPU usage | 1초 기준 사용된 CPU 사용량의 중앙값 |
| Total Young Gen GC | JVM에서 발생한 Young GC의 총 수행시간을 나타낸다 |
| Total Old Gen GC | JVM에서 발생한 Old GC의 총 수행시간을 나타낸다. |
| Store size | 사용된 저장소의 크기를 나타낸다 |
| Translog size | 사용된 TransLog의 크기를 나타낸다 |
| Index size | 생성된 모든 인덱스의 크기를 나타낸다 |
| Thtally written | 디스크에 기록된 모든 데이터의 크기를 나타낸다 |
| Heap used for segments | 세그먼트에 사용된 힙 크기를 나타낸다 |
| Heap used for doc values | doc_values에 사용된 힙 크기를 나타낸다 |
| Heap used for terms | 텀을 생성하는데 사용된 힙 크기를 나타낸다 |
| Heap used for norms | 역색인 자료구조에 필요한 데이터를 생성하는데 사용된 힙 크기를 나타낸다 |
| Heap used for points | points에 사용된 힙 크기를 나타낸다 |
| Heap used for stored fields | stored 필드에 사용된 힙 크기를 나타낸다 |
| Segment count | 생성된 세그먼트의 수를 나타낸다. |
2) 단위 업무별 통계: 단위 업무별 통계 지표를 통해 어떤 기능이 취약하고 뛰어난지 파악이 가능하다.
| 구분 | 설명 | 수치/ 내용 |
| Throughput | 초당 처리한 문서 수(처리량). 최소, 중간, 최대 처리량을 제공함.평균적으로 초당 약 28,000개의 문서를 색인함 |
Min Throughput: 27,756 docs/sec Median Throughput: 28,585 docs/sec Max Throughput: 29,214 docs/sec |
| Service Time | 요청이 처리되어 응답하기까지 걸린 시간(ms). Percentile(백분위수) 단위로 표현. |
50th: 1,306 ms 90th: 1,797 ms 99th: 2,257 ms 99.9th: 2,702 ms 100th: 3,015 ms |
| Latency | 요청 대기 시간(큐잉 포함). Service Time과 거의 동일함.중간값 기준 약 1.3초의 지연 발생. |
50th: 1,306 ms 90th: 1,797 ms 99th: 2,257 ms 99.9th: 2,702 ms 100th: 3,015 ms |
| Error Rate | 작업 수행 중 발생한 오류율 | 0% |
토너먼트 결과 비교하기
esrally compare --baseline=20180515T111712Z --contender=20180516T060254Z
- 각 Rally별로 수행한 보고서를 손쉽게 비교할 수 있도록 compare라는 기능을 제공한다.
- compare 기능을 수행할 때, 아래 옵션값을 추가해 서로 비교 분석한다.
- --baseline 옵션에는 기준이 되는 보고서의 시간 정보를 넣는다
- --contender 옵션에는 비교할 보고서의 시간 정보를 넣는다
728x90
'Elastic Search' 카테고리의 다른 글
| Ch13. 클러스터 성능 측정 - 키바나를 이용한 성능 모니터링 (0) | 2025.11.05 |
|---|---|
| Ch13. 클러스터 성능 측정 - 엘라스틱서치를 위한 벤치마크 툴 (0) | 2025.11.03 |
| Ch12. 안정적인 클러스터 운영 노하우 - 안정적인 클러스터 운영을 위한 주요 체크포인트 (0) | 2025.10.21 |
| Ch12. 안정적인 클러스터 운영 노하우 - 클러스터 관리 API (0) | 2025.10.21 |
| Ch12. 안정적인 클러스터 운영 노하우 - 마스터 노드와 데이터 노드 분리 (0) | 2025.10.21 |