ElasticSearch 2(11) - 노드 튜닝(ElasticSearch 성능)
ElasticSearch 2(11) - 노드 튜닝(ElasticSearch 성능)
요약
하나의 ElasticSearch 집단에 몇 개의 노드가 필요한지 명확한 방식으로 대답하기 어렵지만, 우리는 문제를 몇 개로 세분화하여 우리가 ElasticSearch 노드의 수를 어떻게 설계하는지 더 잘 이해하도록 도와줄 수 있다.
버전
elasticsearch 버전:elasticsearch-2.x
컨텐트
하나의 집단으로 모든 문제를 해결합니까?
대답해야 할 문제는 이상에 그치지 않지만, 다섯 번째 문제는 흔히 우리에게 무시되기 쉽다. 왜냐하면 하나의 Elastic Search 집단은 다중 인덱스를 지원할 수 있고 여러 개의 다른 응용 프로그램의 사용을 지원할 수 있기 때문이다.우리는 회사의 모든 로그를 Elastic Search 집단에 놓고 처리할 수 있다. 사이트의 간단한 조회든 매우 복잡한 분석이든.하나의 집단이 얼마나 많은 응용 프로그램의 로그 수요를 지원할 수 있는지 이해하면 우리가 적당한 노드 수를 분석하는 데 도움을 줄 수 있다
노드 수와 메모리 관련
ElasticSearch의 노드 수는 RAM의 제한을 받는다. 어떤 서버나 가상 컴퓨터에 대해 우리가 분배하는 물리적, 가상 메모리는 유한하다. 이렇게 하면 우리가 분배하는 노드의 수량을 자연히 제한한다.
만능 노드 수--3
만약 우리가 Elastic Search 집단을 세우려고 한다면, 비교적 적합한 숫자는 3이다.왜어느 정도에 하나의 집단 3개 노드는'split-brain'의 출현을 방지할 수 있다. 비록 분포식 집단에 대해 모든 노드가 대등하지만, 우리는 여전히 하나의 주 노드master가 필요하다.이 노드는 자신과 기타 모든 노드 간의 통신을 조율하는 임무를 맡는다.ES에서 마스터 노드는 상기 작업을 담당하는 것 외에 슬라이스와 복사본의 저장소를 최적화하는 동시에 인덱스, 쓰기 데이터와 루트 인덱스 최적화 등 문제를 처리한다.
세 중이 투표하다
주 노드 마스터에 문제가 생기면 노드 슬레이브에서 주 노드와 통신할 수 없을 때 노드에서 새로운 주 노드를 임명하는 선거를 실시하고 새 마스터는 구 마스터의 모든 작업을 인수한다. 만약에 구 마스터가 다시 복구되어 집단에 가입한다면 새 마스터는 원래 낡은 마스터를 슬레이브로 강등시켜 충돌이 발생하지 않을 것이다.모든 이 과정은 ElasticSearch가 스스로 처리하고 사용자는 아무런 참여도 하지 않아도 된다.
두 중이 투표하다
그러나 두 개의 노드만 있을 때 한 주(master)가 한 종(slave)을 따르고 주종이 직접적인 통신에 문제가 생기면 노드slave에서 스스로 마스터로 올라가지만 통신을 회복할 때 우리는 두 개의 마스터가 동시에 있다.이때 원래의 주 노드(master)의 측면에서 고려하면 원래의 노드(slave)에서 문제가 발생한 것으로 여겨졌기 때문에 현재도 slave로 다시 가입해야 한다.이렇게 해서 두 노드를 할 때 우리는 집단이 어느 노드를 주요 노드로 선출할지 모르는 상황이 생겼다. 즉, 우리가 통상적으로 말하는'분뇌'이다.
이런 상황의 발생을 방지하기 위해 세 번째 노드의 출현은 균형을 깨뜨리고 충돌 문제를 해결할 것이다.
세 스님은 여전히 문제가 존재한다
뇌를 나누는 문제 역시 세 개 또는 세 개 이상의 노드를 가진 집단에 나타난다. 발생 확률을 낮추기 위해 ElasticSearch는 디스커버리를 설정했다.zen.minimum_master_nodes는 새로운 마스터를 선출할 때 집단에서 가장 적게 필요한 노드 수를 규정합니다.예를 들어 하나의 3개 노드 집단, 이 숫자는 2, 2개 노드가 집단에서 벗어날 때 자신을 마스터로 선출하는 것을 방지할 수 있으며, 반대로 집단에 다시 가입할 때까지 기다릴 수 있다.이 수치는 하나의 공식을 통해 확정할 수 있다.
N/2 + 1
N의 값은 클러스터의 모든 노드 수입니다.
가용성 저하
두 노드가 집단적으로'분뇌'상황이 발생하는 것을 방지하는 방법은 그 중의 한 노드를 node로 하는 것이다.데이터의 설정은false로 설정됩니다. 그러면 이 노드는 영원히 마스터가 되지 않습니다. 물론 이것은 집단의 가용성을 떨어뜨릴 수 있습니다.
작은 매듭
ElasticSearch 집단의 노드 수에 대해 정설이 없다. ElasticSearch의 엔지니어는 Quora에서도 그의 비슷한 의견을 제시하여 참고할 수 있다
참고
참조 소스:
How many nodes should an Elasticsearch cluster have?
What's the maximum number of nodes Elasticsearch can have? How many, max, have you used in practice?
Elasticsearch Internals: Networking Introduction
끝내다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.