XDCR 는 주로 서로 다른 데이터 센터에 배포된 Couchbase 클러스터 간에 데이터를 복제하는 데 사용되는 고성능 비동기 데이터 복제 시스템입니다. 여러 포춘 500대 기업이 미션 크리티컬 애플리케이션을 위해 XDCR을 사용하고 있습니다. 고가용성, 재해 복구 및 데이터 로컬리티는 XDCR이 솔루션으로 사용되는 주요 애플리케이션입니다.

XDCR은 대부분의 사용 사례에서 높은 처리량과 탄력적인 성능을 제공하도록 설계되었지만 최적의 성능을 위해 튜닝해야 하는 경우가 있을 수 있습니다. 이러한 성능 튜닝 및 사용자 지정이 가능하도록 고급 설정을 도입했습니다.

다음 콘텐츠는 카우치베이스 관리자 콘솔 및 지원되는 API를 통해 액세스할 수 있는 고급 설정을 통해 XDCR 튜닝에 대한 일반적인 지침을 제공하기 위한 것입니다.

복제를 처음 추가할 때 '고급 설정 표시'를 클릭하면 아래와 같은 옵션이 표시됩니다:

튜닝과 가장 관련이 있는 XDCR 설정의 하위 집합이 아래에 나와 있습니다. 이러한 설정은 처리량을 개선하거나 네트워크 대역폭을 절약하는 데 사용할 수 있습니다.

고급 XDCR 설정

  • 소스 노즐(SN) : 노드당 발신자 수 설정, 기본값 = 2
  • 타겟 노즐(TN) : 노드당 수신기 수를 설정합니다(기본값 = 2).
  • 배치 수(BC) - 복제 배치당 항목 수를 설정합니다(기본값 = 500).
  • 배치 크기(BS) - 각 배치의 최대 크기를 킬로바이트 단위로 설정합니다(기본값 = 2048).
  • 최적 복제 임계값(ORT): 임계값을 바이트 단위로 설정합니다(이 임계값보다 작은 크기의 문서는 get_meta 검사를 수행하지 않고 복제됩니다); 기본값은 256입니다.

성능 튜닝

성능에 영향을 미치는 몇 가지 요인으로는 데이터의 특성, 데이터 변이율, 클러스터의 워크로드, 네트워크 구성 등이 있으며, 이러한 매개변수를 기반으로 원하는 성능에 맞게 복제를 조정해야 합니다.

처리량을 개선하거나 대역폭을 절약하기 위한 몇 가지 모범 사례는 다음과 같습니다:

a. 처리량 개선:

  • 소스 및 대상 클러스터의 리소스 헤드룸을 고려할 때 소스 노즐 및 대상 노즐에 대해 기본값보다 높은 범위를 권장합니다.
  • 데이터가 10K보다 큰 크기의 문서로 구성되어 있는 경우 배치 수와 배치 크기를 기본값보다 높게 조정하는 것이 좋습니다.

b.네트워크 대역폭 절약:

  • 평균 문서 크기보다 높은 낙관적 복제 임계값을 사용합니다.

이 동작을 입증하기 위해 여러 가지 실험을 수행했으며, 그 결과는 아래와 같습니다.

실험 설정: 클러스터 A와 클러스터 B는 단방향 복제가 진행 중인 두 개의 클러스터입니다(활성 데이터가 소스 클러스터에서 대상 클러스터로 복제됨).

테스트 환경 구성:

  • AWS에서 실행되는 두 개의 Couchbase 클러스터
  • 소스 클러스터: West1 지역, 대상 클러스터: East1 지역
  • 테스트 당시 클러스터 간 평균 네트워크 지연 시간: 72ms
  • 클러스터 크기: 전용 m4.4xlarge 인스턴스에서 실행되는 5개의 노드
  • 카우치베이스 버킷 구성 : 버킷 유형 - 카우치베이스; 노드당 버킷 메모리 할당량 = 60GB; (복제본, 충돌 해결 및 배출 방법에 대한 기본 설정)
  • Amazon Linux에서 실행되는 Couchbase Server Enterprise R5.0
  • 소스 버킷에서 대상 버킷으로 이동하는 단방향 XDCR 복제 생성

Test1: 기준선 설정

구성 : 모든 고급 설정의 기본값

Test2: 병렬화를 통한 처리량 증가 입증

구성 : 소스 노즐 = 8, 타겟 노즐 = 8(모두 4배), 평균 문서 크기 = 1KB

Test3: 더 큰 네트워크 페이로드로 처리량 증가 입증

구성 : 배치 수 = 4000, 배치 크기 = 8192, 평균 문서 크기 = 20KB

Test4: 대역폭 사용률 감소 입증

구성 : 최적 복제 임계값 > 평균 문서 크기

참고 :

  1. 차트에 표시된 테스트 결과는 AWS의 클라우드 환경의 변화로 인해 동일한 설정에서 이러한 테스트를 반복할 때 3-5%의 편차가 나타날 수 있으므로 절대적인 것으로 간주해서는 안 됩니다.
  2. 모든 테스트에서 CPU 사용률은 평균 40% 이하였습니다.

원하는 성능 요구 사항에 맞게 복제를 실험하고 조정하길 바라지만, 매우 전문적이거나 비즈니스에 매우 중요한 사용 사례의 경우 XDCR 설정을 변경하기 전에 Couchbase에 문의하는 것이 좋습니다.

이 실험을 수행한 솔루션 엔지니어는 Nirvair Singh이며, 추가 안내나 설명이 필요하면 언제든지 저나 Nirvair에 문의해 주시기 바랍니다.

언제나 그렇듯이 여러분의 실험과 경험에 대해 더 많은 것을 배울 수 있기를 기대합니다.

 

작성자

게시자 Chaitra Ramarao, Sr. 제품 관리자, Couchbase Inc.

Chaitra Ramarao는 데이터베이스 툴링, 데이터센터 간 복제 및 파트너 통합을 선도하는 NoSQL 데이터베이스 회사인 Couchbase의 선임 제품 관리자입니다. 이전에는 카이저 퍼머넌트에서 데이터 분석 제품 관리와 휴렛팩커드에서 소프트웨어 개발을 담당했습니다. 그녀는 카네기 멜론에서 ECE 학사 학위와 엔지니어링 및 기술 혁신 관리 석사 학위를 받았습니다.

댓글 남기기