Nesta postagem do blog, você terá uma visão geral de duas otimizações de desempenho relacionadas que podem ser feitas para o Couchbase 2.5.1 e versões anteriores. Isso não é para o 3.x por motivos que você pode ler no final desta postagem. As duas alterações afetam diretamente o desempenho da leitura e da gravação no Couchbase. Saiba também que você deve ter um cluster de tamanho adequado antes de começar a mexer nessas configurações. Caso contrário, você poderá causar mais problemas para o cluster do que resolver. Se precisar de mais informações sobre como dimensionar seu cluster, consulte A excelente série do blog de Perry sobre o assunto.

Adição de mais threads de leitor/gravador por bucket

A primeira é alterar o número de threads disponíveis por bucket. Isso só deve ser feito se você tiver recursos de servidor/instância suficientes para isso. Se você estiver executando apenas 4 núcleos em seus nós do Couchbase, provavelmente esse não é o aprimoramento de desempenho ideal para você. Essa configuração permitirá que o Couchbase use mais threads de leitor/gravador e, portanto, envie mais operações. Portanto, na configuração de cada bucket, você verá uma parte dessa tela que se parece com isto:

Otimizando mais para uso misto ou cargas de trabalho pesadas de gravação

A segunda otimização está ligada à primeira. Ela tem a ver com a otimização do Couchbase para leitura, gravação ou ambas. Por padrão, o Couchbase é otimizado para leitura em termos de thread e, para muitos casos de uso, isso funciona muito bem. Se você tiver um caso de uso misto ou de escrita pesada, deverá otimizar o Couchbase para isso. Você altera esses valores com uma chamada à API REST, como abaixo, com o wget:

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

A terceira opção é ponderar os tópicos para os escritores:

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

Se você quiser definir isso de volta para o padrão, é só fazer isso:

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

Observação: Todas as alterações acima REQUEREM a reinicialização do bucket para entrar em vigor. Essa é uma das poucas operações off-line no CB. Portanto, faça não altere isso em seu cluster de produção sem uma janela de manutenção planejada e tempo de inatividade planejado!!! Para a alteração do número de threads, o Couchbase fará a reinicialização do bucket para você depois de salvá-lo. Para as chamadas REST, você terá que fazer isso manualmente. De qualquer forma, planeje adequadamente o tempo de inatividade!

Para obter mais informações sobre esse Consulte a documentação oficial.

Isso ainda é necessário para o Couchbase 3.0?

Não. Essas otimizações não são mais necessárias na versão 3.x devido à introdução de um recurso chamado Global Thread Pool. Com esse recurso, o Couchbase agora gerencia o número de threads e o equilíbrio de threads dinamicamente para você e com inteligência em relação à sua carga de trabalho.

Autor

Postado por Kirk Kirkconnell, engenheiro de soluções sênior, Couchbase

Kirk Kirkconnell foi engenheiro de soluções sênior da Couchbase, trabalhando com clientes em várias capacidades para ajudá-los a arquitetar, implantar e gerenciar o Couchbase. Sua experiência é em operações, hospedagem e suporte de infraestruturas de aplicativos e bancos de dados em larga escala.

3 Comentários

  1. Isso requer a reinicialização do bucket para entrar em vigor. A verificação com o comando cbstats não mostra o parâmetro atualizado até depois da reinicialização. Exemplo:

    Padrão 2.5.1:

    /opt/couchbase/bin/cbstats localhost:11210 raw workload -b bucket -p password
    ep_workload:num_readers: 4
    ep_workload:num_shards: 4
    ep_workload:num_writers: 2
    ep_workload:policy: Otimizado para acesso a dados de leitura

    Após a reinicialização:

    /opt/couchbase/bin/cbstats localhost:11210 raw workload -b bucket -p password
    ep_workload:num_readers: 3
    ep_workload:num_shards: 5
    ep_workload:num_writers: 5
    ep_workload:policy: Otimizado para acesso a dados de gravação

    1. Sim, bem visto! A parte em que falo sobre a reinicialização precisa ser empurrada para o final do artigo. Vou corrigir o artigo.

  2. Sim, bem visto! A parte em que falo sobre a reinicialização precisa ser empurrada para o final do artigo. Vou corrigi-la.

Deixar uma resposta