고성능

성능: Couchbase 2.x에서 스레드 관리하기

이 블로그 게시물에서는 Couchbase 2.5.1 이하에서 수행할 수 있는 두 가지 관련 성능 최적화에 대한 개요를 살펴봅니다. 이 글의 하단에서 확인할 수 있는 이유로 3.x에는 적용되지 않습니다. 이 두 가지 변경 사항은 Couchbase에서 읽기 및 쓰기 성능에 직접적인 영향을 미칩니다. 또한 이러한 설정을 변경하기 전에 적절한 크기의 클러스터가 있어야 합니다. 그렇지 않으면 클러스터에 해결보다 더 많은 문제를 일으킬 수 있습니다. 클러스터 크기 조정에 대한 자세한 정보가 필요한 경우 다음을 참조하세요. 주제에 대한 Perry의 훌륭한 블로그 시리즈.

버킷당 더 많은 리더/라이터 스레드 추가하기

첫 번째는 버킷별로 사용 가능한 스레드 수를 변경하는 것입니다. 이 작업은 서버/인스턴스 리소스가 충분한 경우에만 수행해야 합니다. Couchbase 노드에서 코어를 4개만 실행하는 경우에는 이 방법이 성능 향상에 도움이 되지 않을 수 있습니다. 이 설정을 사용하면 카우치베이스가 더 많은 리더/라이터 스레드를 사용할 수 있으므로 더 많은 작업을 푸시할 수 있습니다. 따라서 각 버킷의 구성에서 해당 화면의 일부가 다음과 같이 표시됩니다:

혼합 사용 또는 무거운 워크로드 쓰기에 더 최적화하기

두 번째 최적화는 첫 번째 최적화와 연결됩니다. 읽기, 쓰기 또는 둘 다에 대해 Couchbase를 최적화하는 것과 관련이 있습니다. 기본적으로 Couchbase는 스레드 읽기에 최적화되어 있으며 많은 사용 사례에서 잘 작동합니다. 혼합 사용 사례나 쓰기 비중이 높은 사용 사례가 있는 경우 이를 위해 Couchbase를 최적화해야 합니다. 아래와 같이 wget을 사용하여 REST API 호출로 이러한 값을 변경할 수 있습니다:

wget -O- -user= -password= -post-data='ns_bucket:update_bucket_props("", [{extra_config_string, "workload_optimization=mix"}])'. http://localhost:8091/diag/eval

세 번째 옵션은 작성자에게 가중치를 부여하는 것입니다:

wget -O- -user= -password= -post-data='ns_bucket:update_bucket_props("", [{extra_config_string, "workload_optimization=write"}])'. http://localhost:8091/diag/eval

이를 기본값으로 되돌리려면 이렇게 하면 됩니다:

wget -O- -user= -password= -post-data='ns_bucket:update_bucket_props("", [{extra_config_string, "workload_optimization=read"}])'. http://localhost:8091/diag/eval

참고: 위의 모든 변경 사항을 적용하려면 버킷을 다시 시작해야 합니다. 이는 CB에서 몇 안 되는 오프라인 작업 중 하나입니다. 따라서 not 계획된 유지 관리 기간과 계획된 다운타임 없이 프로덕션 클러스터에서 변경하세요!!! 스레드 수를 변경하는 경우, 버킷을 저장하면 Couchbase가 버킷을 다시 시작합니다. REST 호출의 경우 수동으로 수행해야 합니다. 어느 쪽이든 다운타임을 적절히 계획하세요!

이에 대한 자세한 내용은 공식 문서 참조.

Couchbase 3.0에서도 여전히 필요한가요?

아니요. 글로벌 스레드 풀이라는 기능이 도입되었기 때문에 3.x에서는 이러한 최적화가 더 이상 필요하지 않습니다. 이 기능을 통해 Couchbase는 이제 워크로드에 대한 인텔리전스를 바탕으로 스레드 수와 스레드 균형을 동적으로 관리합니다.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 커크 커크코넬, 수석 솔루션 엔지니어, Couchbase

커크 커크코넬은 카우치베이스의 선임 솔루션 엔지니어로 다양한 역량으로 고객과 협력하여 카우치베이스의 설계, 배포 및 관리를 지원했습니다. 그의 전문 분야는 대규모 애플리케이션 및 데이터베이스 인프라의 운영, 호스팅 및 지원입니다.

댓글 하나

  1. 이를 적용하려면 버킷을 다시 시작해야 합니다. 다시 시작한 후에 cbstats 명령으로 확인하면 업데이트된 매개변수가 표시되지 않습니다. 예시:

    기본값 2.5.1:

    /opt/couchbase/bin/cbstats localhost:11210 원시 워크로드 -b 버킷 -p 비밀번호
    ep_workload:num_readers: 4
    ep_workload:num_shards: 4
    ep_workload:num_writers: 2
    ep_workload:policy: 읽기 데이터 액세스에 최적화

    다시 시작한 후

    /opt/couchbase/bin/cbstats localhost:11210 원시 워크로드 -b 버킷 -p 비밀번호
    ep_workload:num_readers: 3
    ep_workload:num_shards: 5
    ep_workload:num_writers: 5
    ep_workload:policy: 쓰기 데이터 액세스에 최적화

    1. 네, 잘 잡으셨어요! 재시작에 대해 언급하는 부분을 글의 맨 뒤로 밀어야 할 것 같습니다. 글을 수정하겠습니다.

  2. 네, 잘 잡으셨어요! 재시작에 대해 설명하는 부분은 글의 끝부분으로 밀어야 합니다. 수정하겠습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.