이 블로그 게시물에서는 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는 이제 워크로드에 대한 인텔리전스를 바탕으로 스레드 수와 스레드 균형을 동적으로 관리합니다.
이를 적용하려면 버킷을 다시 시작해야 합니다. 다시 시작한 후에 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: 쓰기 데이터 액세스에 최적화
네, 잘 잡으셨어요! 재시작에 대해 언급하는 부분을 글의 맨 뒤로 밀어야 할 것 같습니다. 글을 수정하겠습니다.
네, 잘 잡으셨어요! 재시작에 대해 설명하는 부분은 글의 끝부분으로 밀어야 합니다. 수정하겠습니다.