본문 바로가기
WIKI 기술 지식 베이스

Running distributed loads

원문 보기 위키 갱신

출처: 문서

본문

분산 부하 실행하기

OpenSearch Benchmark 부하는 항상 벤치마크가 시작된 것과 같은 머신에서 실행돼요. 하지만 여러 로드 드라이버를 사용해 추가 벤치마크 테스트 부하를 생성할 수 있어요. 특히 여러 머신에 걸친 대규모 클러스터의 경우에 그래요. 이 튜토리얼에서는 단일 클러스터 내 여러 머신에 벤치마크 부하를 분산하는 방법을 설명해요.

시스템 아키텍처

다음 튜토리얼은 3노드 아키텍처를 사용해요. 각 노드는 Amazon Elastic Compute Cloud (Amazon EC2)에서 생성돼요:

  • Node 1: Node 1은 코디네이팅 노드 역할을 하며, 나머지 두 노드 간의 분산과 통신을 가능하게 해요.
  • Node 2와 Node 3: 클러스터의 나머지 노드들은 벤치마크 테스트를 위한 부하를 생성하는 데 사용돼요.

모든 노드에 OpenSearch Benchmark가 설치되어 있어야 해요. 설치 방법은 Installing OpenSearch Benchmark을 참고하세요.

각 노드의 IP 주소를 메모해 두세요. 이 튜토리얼에서는 다음 IP 주소를 사용해요:

  • Node 1 -- 코디네이팅 노드: 192.0.1.0
  • Node 2 -- 워커 노드: 198.52.100.0
  • Node 3 -- 워커 노드: 198.53.100.0

1단계: 노드 간 통신 활성화하기

각 노드에 대한 통신이 활성화되어 있는지 확인하세요. AWS Management Console에서:

  1. 해당 노드의 EC2 호스트로 이동하세요.
  2. Security를 선택한 다음, 해당 노드와 연결된 보안 그룹을 선택하세요.
  3. Add inbound rules를 사용해 클러스터의 포트 범위와 트래픽 유형에 맞게 노드로의 트래픽을 열어 주세요.

2단계: 각 노드에서 데몬 프로세스 실행하기

각 노드에서 OpenSearch Benchmark를 시작하세요. --node-ip로 노드 자체에서 OpenSearch Benchmark를 초기화하고, 이어서 --coordinator-ip로 각 노드를 코디네이팅 노드에 연결해요.

Node 1의 경우 다음 명령어가 해당 노드를 코디네이팅 노드로 식별해요:

opensearch-benchmarkd start --node-ip=192.0.1.0 --coordinator-ip=192.0.1.0

다음 명령어들은 Node 2와 Node 3이 부하 생성 지시를 받기 위해 코디네이팅 노드를 리스닝하도록 해줘요.

Node 2

opensearch-benchmarkd start --node-ip=198.52.100.0 --coordinator-ip=192.0.1.0

Node 3

opensearch-benchmarkd start --node-ip=198.53.100.0 --coordinator-ip=192.0.1.0

세 노드 모두에서 OpenSearch Benchmark가 실행 중이고 워커 노드가 코디네이팅 노드를 리스닝하도록 설정됐으니, 이제 벤치마크 테스트를 실행할 수 있어요.

3단계: 벤치마크 테스트 실행하기

Node 1에서 worker-ips를 워커 노드의 IP 주소로 설정해 벤치마크 테스트를 실행하세요. 다음 예시를 참고하세요:

opensearch-benchmark run --pipeline=benchmark-only --workload=eventdata --worker-ips=198.52.100.0,198.53.100.0 --target-hosts=<DOMAIN_ENDPOINT> --client-options=<STANDARD_CLIENT_OPTIONS> --kill-running-processes

테스트가 완료되면 테스트에서 생성된 로그가 워커 노드에 나타나요.

더 알아보기 (Learn more)