목적
- 노드 개수 확립
- 하드웨어 사용량 및 효율적인 샤드 개수 확립
- 하드웨어 스펙에 따라 검색 성능 상이
- 인덱스 총 크기에 따른 효율적인 샤드 개수 확립
필요 정보
하드웨어 | Elasticsearch |
vCPU | 각 인덱스 총 크기 |
RAM | 초당 최대 인입 쿼리 수 |
Disk (I/O) | 목표 검색 응답 시간 |
Network(1G/10G) | 인덱스 복제 여부 |
근거
샤드 개수가 적을 경우 단일 쿼리의 성능은 높아지나, 대량의 쿼리 성능은 저하
샤드 개수가 많을 경우 단일 쿼리의 성능은 낮아지나, 대량의 쿼리 성능은 상향
이에 따라,
- 현재 구성하는 ES 서비스의 쿼리 현황 파악이 필요하다.( 필요한 정보 - 서비스의 규모 및 성질)
- index 총 크기가 높아 질 경우 샤드 분배를 통하여 서버 H/W 리소스 최적화 필요 (중점 리소스: Disk I/O, memory 사용량, CPU 사용량)
- ES 퍼포먼스 성능 근거하여 최적화(GC Count, Request Time, Indexing Time)
*ES: ElasticSearch
- Index 크기에 따른 샤드 분배 필요
- 샤드 개수에 따른 검색 시간
- 샤드 분배에 따른 영향
Shards 필요성
Shards 개수 Case 별
테스트 케이스
성능 부하 테스트 (H/W)
테스트 조건:
- 1개의 마스터 & 데이터 노드
- 1개의 데이터 노드의 하나의 샤드로 진행
- 초당 데이터 Query 지정 필요
테스트 방식:
- 샤드 용량(사이즈) 증가로 인한 반복 테스트
테스트 목적:
- 샤드 용량(사이즈)에 따른 메모리 사용량 및 쿼리 응답시간 확인
검색 성능 테스트 (ElasticSearch)
테스트 조건:
- 3개의 다중 마스터 node 환경
테스트 방식:
- 1초에 3번 Query 총 1분 진행 5번 진행 - 5분
- 1초에 5번 Query 총 1분 진행 5번 진행 - 5분
- 1초에 10번 Query 총 1분 진행 5번 진행 - 5분
테스트 목적:
검색 성능 테스트 – 샤드 개수 지정
- 샤드 개수 1~5개 별 검색 시간 확인
- 목표하는바의 검색 응답 시간에 맞는 샤드 개수 설정
테스트
Opensource 활용하여 진행
NO | 링크 | 목적 | 기반 Program Langauge | 필수 프로그램 | 비고 |
1 | https://github.com/logzio/elasticsearch-stress-test | 데이터 인입 용도 | Python | Python 2.7 | |
Metricbeat로 대체 |
테스트 환경
Node | vCPU | RAM | Master Node | Data Node |
test-ES-cluster01 | 4 | 8GB | true | true |
test-ES-cluster02 | 4 | 8GB | true | true |
test-ES-cluster03 | 4 | 8GB | true | true |
테스트 개요
- 하나의 cluster, 3개의 다중 마스터&데이터 Node 환경
- 안정성 있는 service 운영을 위한 테스트
- H/W 성능 부하 테스트
테스트 목적
- H/W 성능에 맞는 shard 개수 및 크기 확인
- Index 총 크기에 대한 정보 부족으로 인하여 부하 목적에 치중
테스트 결과
테스트 대상 | Shard 개수 | 특이사항 |
test-ES-Cluster01 | 3 | - |
날짜 | 수행 내용 |
11:34 AM | 20,000 documents |
11:39 AM | 20,000 documents |
11:46 AM | 51,000 documents |
테스트 대상 | Shard 개수 | 특이사항 |
test-ES-Cluster01 | 1 | - |
날짜 | 수행 내용 |
10:17 AM | test start |
10:29 AM | test end 199,000 documents |
테스트 대상 | Shard 개수 | 특이사항 |
test-ES-Cluster01 | 1 | - |
날짜 | 수행 내용 |
14:46 | test start |
15:13 | test end 295,000 documents |
'오픈소스 > ElasticSearch' 카테고리의 다른 글
Elaistcsearch 검색 테스트 (0) | 2021.05.16 |
---|---|
Elasticsearch 운영 중 예상 error 테스트 (0) | 2021.05.16 |
ElaistcSearch 3 master node & 1 data node 설정 (0) | 2021.05.16 |
Cent OS 7 ElasticSearch 설치 (0) | 2021.05.16 |
ElasitcSearch 정리 (0) | 2021.05.16 |