O ponto principal para qualquer administrador de sistemas é manter o banco de dados e, no caso do Couchbase, manter o cluster em funcionamento 24 horas por dia, 7 dias por semana. Com requisitos exigentes de aplicativos, seu cluster precisa ser configurado, dimensionado e monitorado adequadamente. Isso pode ser bastante desafiador, pois as coisas podem falhar a qualquer momento sem nenhum aviso prévio. Como operador, todo dia é diferente, cheio de surpresas e desafios.
No entanto, há algumas coisas que todo operador do Couchbase Server deve saber. Esperamos que os 10 itens a seguir sejam úteis e facilitem seu trabalho:
1. Mantenha suas bibliotecas de clientes atualizadas
Sempre use a versão mais recente das bibliotecas de cliente compatíveis com o servidor. Ao usar as bibliotecas de cliente mais recentes, você pode obter o máximo do seu cluster do Couchbase - código testado recentemente e os recursos mais recentes que surgiram por meio do cliente.
2. Monitorar, monitorar e monitorar
Usando o painel de administração ou as APIs REST, você pode monitorar o desempenho do cluster do Couchbase. É uma boa prática monitorar as seguintes métricas do sistema: taxa de acerto do cache, leituras de disco, taxa de itens residentes e fila de gravação em disco.
Taxa de falha do cache deve ser baixo. Isso significa que as chaves do documento são armazenadas em cache na memória, tornando as leituras e gravações mais rápidas.
Índice de itens residentes mostra o número total de documentos ativos que residem na memória. Normalmente, você deseja que seu conjunto de trabalho (documentos acessados ativamente) esteja na memória para obter baixas latências e uma experiência de usuário incrível.
O número de leituras de disco lhe dará uma ideia de sua E/S de disco. É bom manter esse número baixo para que a maioria das leituras seja feita na RAM, o que é mais rápido.
O fila de gravação em disco lhe dará uma ideia do número de itens que precisam ser gravados no disco e a taxa em que estão sendo drenados. Se as filas de gravação em disco forem muito altas (milhões de itens), o cluster poderá não ter sido dimensionado com precisão.
Aqui está um link para nossa API REST.
3. Dividir os dados e os arquivos de índice em dispositivos de disco separados
Para obter o melhor desempenho, separe os arquivos de dados e de índice em diferentes dispositivos de armazenamento. Ao fazer isso, você terá largura de banda de E/S de disco suficiente para operações de desempenho intensivo, como compactação, sem nenhuma degradação significativa do desempenho.
A compactação é um processo importante que é executado o tempo todo para recuperar espaço, dada a arquitetura somente de anexos do Couchbase. Ele também pode ser programado. Saiba mais sobre compactação aqui.
4. Não! O reequilíbrio falhou?
Reequilíbrio um cluster do Couchbase é uma operação complicada. Há vários motivos pelos quais o rebalanceamento pode ser lento ou falhar. Trabalhamos muito para tornar esse processo mais robusto, mas se o rebalanceamento ainda falhar, aguarde cerca de 5 minutos e reinicie o processo novamente. Não deve haver impacto sobre o aplicativo, pois o mapa do cluster no cliente é atualizado automaticamente durante o rebalanceamento.
Lembre-se de não clicar no botão de rebalanceamento muitas vezes seguidas - isso apenas reinicia o processo novamente, desperdiça o trabalho útil que foi feito e, às vezes, pode causar estragos.
5. Lembre-se de que o rebalanceamento de swap é melhor do que o rebalanceamento regular
O Swap Rebalance otimiza a movimentação de dados quando você está adicionando e removendo o mesmo número de nós na mesma operação. Os dados são movidos diretamente dos nós que estão sendo removidos para os nós que estão sendo adicionados. Isso é mais eficiente do que o rebalanceamento padrão, que normalmente moveria os dados por todo o cluster.
6. Monitore a integridade do seu sistema e integre o Couchbase ao seu ecossistema
Se você já estiver usando um sistema de monitoramento externo, como o nagios, para monitorar sua infraestrutura, poderá conectar o sistema de monitoramento existente ao Couchbase por meio da API REST. O Couchbase Server pode notificá-lo e alertá-lo para que você possa verificar a integridade do cluster do Couchbase Server. Alguns deles incluem:
- Alterações no endereço IP Se o endereço IP de um Couchbase Server em seu cluster for alterado, você será avisado de que o endereço não está mais disponível. Você deve verificar o endereço IP no servidor e atualizar seus clientes ou a configuração do servidor.
- Sobrecarga de metadados Indica que um bucket agora está usando mais de 50% da RAM alocada para armazenar metadados e chaves, reduzindo a quantidade de RAM disponível para valores de dados. Esse é um indicador útil de que talvez seja necessário adicionar nós ao seu cluster.
- Uso do disco Indica que o espaço em disco disponível usado para armazenamento persistente atingiu pelo menos 90% de capacidade. Esse é um sinal de que talvez seja necessário adicionar mais discos ao cluster.
O Couchbase também tem um rico ecossistema de adaptadores, como um conector Hadoop e um plug-in para o ElasticSearch.
7. Dimensione seu cluster adequadamente em termos de RAM, disco e CPU
Antes da produção, é muito É importante dimensionar seu cluster e testá-lo adequadamente. O dimensionamento de seu cluster do Couchbase será fundamental para sua estabilidade e desempenho. Para obter alto desempenho, seu aplicativo desejará que o maior número possível de leituras saia do cache e que o sistema tenha capacidade de E/S suficiente para lidar com as gravações. É necessário que haja capacidade suficiente em todas as várias áreas para dar suporte a tudo o que o sistema está fazendo e, ao mesmo tempo, manter o nível de desempenho necessário.
8. Os dados são replicados em todo o cluster. Opcionalmente, os índices também podem ser replicados.
Os documentos no Couchbase podem ser replicados até 3 vezes em um cluster. O número de réplicas (até 3) pode ser configurado por meio da interface do usuário do administrador. As mutações de documentos na memória são replicadas dos nós ativos para os nós de réplica. Para consultar um documento, você pode usar o ID do documento e o Couchbase pesquisará o documento usando o índice primário. Para consultar um subconjunto dos dados, você pode usar os índices secundários. A replicação de índices no Couchbase é opcional e pode ser configurada por meio da UI de administração.
9. A replicação entre data centers pode ser usada para recuperação de desastres
O Couchbase XDCR permite que você replique dados entre clusters. O acesso aos dados entre os clusters acaba sendo consistente. Lembre-se de dimensionar seus clusters para o XDCR, pois você precisará do dobro da capacidade de disco e de E/S, além de um pouco mais de CPU.
10. Indexação de sintonia
Ao lidar com um grande número de documentos, há duas maneiras de indexá-los. A primeira é indexar todos os documentos do zero, o que é um processo demorado. A outra é atualizar o índice somente para os documentos que foram alterados, o que é um processo incremental. No Couchbase, os índices são criados usando mapreduce incremental, o que torna eficiente o processo de atualização ou criação de índices. Como administrador, você pode ajustar o número de índices que podem ser criados em paralelo ou ajustar o tempo/intervalo entre as criações de índices. Tente agrupar mais exibições em um número menor de documentos de design para melhorar o desempenho. Mais algumas práticas recomendadas de visualização podem ser encontradas aqui.
Apenas 10 coisas? Não, é claro que não! O Couchbase é um sistema de banco de dados NoSQL e, depois de experimentá-lo, você descobrirá que há muito mais a aprender. Se você acha que deixei passar algo importante que deveria ser incluído na lista dos 10 principais, fique à vontade para acrescentar nos comentários abaixo. Por fim, se você ainda não leu as diretrizes de práticas recomendadas para o Couchbase Server 2.0.
Aproveite!
Links relacionados
- Manual do servidor Couchbase
- Documentação do Couchbase
Os índices criados para a pesquisa de texto completo podem causar problemas de desempenho no Couchbase? Por desempenho, quero dizer extração de documentos por qualquer aplicativo?
Olá, Rohit, em ambientes de produção empresarial, a carga de trabalho do serviço de pesquisa pode ser completamente isolada do serviço de dados. Desde que esteja usando os recursos de dimensionamento multidimensional do Couchbase Server Enterprise Edition, você pode optar por executar todos os serviços relacionados à pesquisa em nós separados dos dados, índices secundários, consulta N1QL etc.