기본 클러스터 튜닝
기본 클러스터 튜닝 (Basic cluster tuning)
Druid 클러스터의 기본 워크로드 설정에 대한 권장 사항을 설명하는 문서예요. 세그먼트 크기와 워커 용량(worker capacity)을 어떻게 잡으면 좋은지, 그리고 소규모 프로세스 구성에 권장되는 값을 다루어요.
출처: 문서
본문
이 페이지는 Druid 클러스터의 기본 워크로드 설정에 대한 권장 사항을 다루어요. 이 페이지를 druid cluster size reference guide와 함께 읽으면 더 좋아요.
세그먼트 크기 (Segment size)
세그먼트 크기: 세그먼트의 크기가 적절한지 확인하세요. Druid 세그먼트는 대략 5백만 행 범위여야 해요. 더 크거나 작다면, 또는 세그먼트 수가 많다면 세그먼트 크기 조정 섹션에서 자세한 내용을 읽어보세요.
워커 용량 (Worker capacity)
워커 용량: MiddleManager 또는 Indexer가 한 번에 실행할 수 있는 태스크 수예요.
워커 용량 튜닝: 워커 용량은 MiddleManager가 실행하는 동시 태스크 수예요. 올바른 값을 얻으려면 태스크에 필요한 스레드 수와 메모리 양을 고려해야 해요. 이는 클러스터가 실행하는 태스크 유형에 따라 달라져요.
튜닝 가능하지만 필수는 아님:
세그먼트 크기는 실행자(executor)당 프로세스 수를 변경해 튜닝할 수 있어요.
태스크에 필요한 스레드 수와 메모리 양을 고려해야 해요. 이는 클러스터가 실행하는 태스크 유형, 즉 "실행자당 프로세스 수" 값을 결정하는 요소에 따라 달라져요.
소수의 프로세스에 권장되는 값 (Recommended values for a small number of processes)
Druid는 일반적으로 소수의 프로세스만 실행해요. 소수의 프로세스에 권장되는 값은 아래와 같아요.
-
새로 설치한 경우, 일반적으로 코어당 1개 프로세스를 실행하고 병렬성을 위해 전체에 ×2 스레드 오버커밋(thread overcommit) 을 적용하면 충분해요. 전체 프로세스 수 = 코어 수 × 2예요.
-
대규모 쿼리나 대규모 인제스트 작업을 실행하는 클러스터라면 기본값을 조정하고 싶을 수 있어요. 이 경우 메모리를 오버커밋하지 않는 것이 중요하며, 모든 쿼리가 사용 가능한 전체 메모리를 사용하는 것은 아님을 명심하세요. 또한 어떤 경우에는 다양한 구성 요소가 전혀 메모리를 할당하지 못할 수도 있어요.
-
Druid를 한동안 실행한 후에는 sizing-guidance 도구로 클러스터 리소스 사용률을 분석하고 최대 동시 태스크 수에 적합한 대상을 고를 수 있어요.
-
일회성(one-off) 쿼리의 경우 guidance analysis 도구의 one-off 기능을 사용할 수 있어요.
예시: 코어당 1개 프로세스, 단일 코어, 4GB 메모리 (Example: 1 process per core, single core, 4 GB memory)
코어당 프로세스 수와 메모리 배분의 실제 예시를 통해 워커 용량과 메모리 구성을 확인해 보세요. 구체적인 수치는 배포 환경과 태스크 유형에 따라 달라져요.
더 알아보기 (Learn more)
- 클러스터 크기 산정 가이드 문서에서 세그먼트 크기와 프로세스 구성을 자세히 알아보세요.
- 고가용성 문서에서 클러스터를 안정적으로 운영하는 방법을 살펴보아요.
- 운영(Operations) 문서에서 기타 운영 가이드를 확인해 보세요.