Elastic Search

Ch13. 클러스터 성능 측정 - Rally를 이용한 클러스터 부하 테스트

webmaster 2025. 11. 5. 22:59
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