Todos os produtos
Search
Central de documentação

ApsaraDB for MongoDB:Teste de desempenho da replicação em cadeia

Última atualização: Jun 26, 2026

A replicação em cadeia reduz a carga no nó primário, mas pode aumentar o atraso de replicação. Este documento apresenta benchmarks do impacto no desempenho em instâncias de conjunto de réplicas do ApsaraDB for MongoDB com 3, 7 e 15 nós para ajudar na escolha da configuração ideal.

Replicação em cadeia

O que é replicação em cadeia?

O MongoDB oferece suporte à replicação em cadeia. Esse mecanismo ocorre quando um nó secundário de um conjunto de réplicas sincroniza dados a partir de outro nó secundário. Embora essa abordagem reduza a carga no nó primário, ela pode aumentar o atraso de replicação em determinadas topologias de rede. Para mais informações, consulte Self-Managed Chained Replication.

Na replicação em cadeia, não é necessário que todos os nós formem uma única cadeia. Um nó secundário pode escolher uma source de sincronização diferente do nó primário com base em métricas como tempo de ida e volta (RTT). O diagrama abaixo ilustra várias topologias de conjuntos de réplicas de cinco nós que utilizam replicação em cadeia.

image

Configure replicação em cadeia

Ative ou desative a replicação em cadeia ajustando o parâmetro settings.chainingAllowed na página Parameter Settings do console. Para mais detalhes sobre como ajustar parâmetros, consulte Definir parâmetros do banco de dados.

Caso a replicação em cadeia cause atrasos na replicação, desative-a para otimizar o desempenho da sincronização.

Nota

Por motivos de segurança, não é possível execute o comando replSetReconfig em instâncias do ApsaraDB for MongoDB. Modifique os parâmetros diretamente no console.

Teste de impacto no desempenho da instância

Ambiente de teste

Crie uma instância ECS e uma instância de conjunto de réplicas do ApsaraDB for MongoDB. Para mais informações, consulte Criar uma instância de conjunto de réplicas e Criar uma instância ECS usando o assistente.

  • Arquitetura da instância ApsaraDB for MongoDB: conjunto de réplicas padrão com três nós, composto por um nó primário, um nó secundário e um nó oculto. Configurações maiores incluem nós secundários e somente leitura adicionais.

  • Tempo de ida e volta (RTT) de rede entre as instâncias ECS e ApsaraDB for MongoDB: média de 0,103 ms quando ambas as instâncias estão na mesma região e zona.

A tabela a seguir lista as configurações de instância utilizadas neste teste.

Parâmetro

Instância ECS

Instância ApsaraDB for MongoDB

Região e zona

China (Beijing) zone H

China (Beijing) zone H

Tipo de rede

VPC

VPC

Família da instância

Compute-optimized c6

Dedicated

Tipo de instância

ecs.c6.xlarge (4 vCPU, 8 GiB)

ecs.c7.xlarge (4 vCPU, 8 GiB)

Tipo de armazenamento

ESSD PL0

ESSD PL1

Sistema operacional

Alibaba Cloud Linux 3.2104 LTS 64-bit

4.19.91-26.al7.x86_64

Versão do MongoDB

N/A

Versão principal: 5.0

Versão base secundária: 5.0.30

Ferramenta de teste

Este teste utiliza a ferramenta de benchmark open-source YCSB 0.17.0.

Nota

O Yahoo! Cloud Serving Benchmark (YCSB) é uma ferramenta baseada em Java para avaliar o desempenho de bancos de dados. Para instruções de instalação e uso, consulte o repositório oficial do YCSB.

Procedimento

  1. Adicionar um endereço IP à lista de permissões. Acesse o console ECS, localize o endereço IP privado principal da sua instância ECS na página de detalhes da instância e adicione-o à lista de permissões da sua instância ApsaraDB for MongoDB.

  2. Conectar-se à instância ECS.

  3. Carregue os dados de teste usando o YCSB.

    ./bin/ycsb.sh load mongodb -s -p workload=site.ycsb.workloads.CoreWorkload -p recordcount=5000000 -p mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin" -p table=test -threads 8

    Parâmetros:

    • recordcount: número total de registros a serem carregados na instância ApsaraDB for MongoDB.

    • mongodb.url: string de conexão da instância ApsaraDB for MongoDB. Neste teste, a conta do banco de dados é test e o banco de dados é admin. Encontre a string de conexão na página Database Connection, na seção Internal Connections - VPC do console do ApsaraDB for MongoDB.

    • threads: quantidade de threads simultâneas do cliente.

  4. Visualize os resultados do teste YCSB e os dados de monitoramento da instância. Na página Monitoring Information, acesse a aba Node Monitoring. Selecione o intervalo de tempo do teste e visualize as métricas de CPU utilization, QPS, and average response time do nó primário. Para mais informações, consulte Monitoramento de nós (anteriormente monitoramento básico).

Resultados do teste

Parâmetros

Write Concern: nível de confirmação solicitado ao MongoDB para operações de escrita. Este teste utiliza os seguintes valores:

  • {w:"majority"}: configuração padrão. A escrita é confirmada após ser replicada para a maioria dos nós votantes no conjunto de réplicas.

  • {w: 1}: a escrita é confirmada assim que o nó primário a valida.

Resultados detalhados do teste

Instância de 3 nós

Topologia do conjunto de réplicas: um nó primário, um nó secundário e um nó oculto.

Write concern: {w:"majority"}

Item

Replicação em cadeia ativada

Replicação em cadeia desativada

Throughput (ops)

5.277

5.241

CPU utilization

65%

65%

QPS (count)

image.png

image.png

Average response time (μs)

image.png

image.png

Write concern: {w:1}

Item

Replicação em cadeia ativada

Replicação em cadeia desativada

Throughput (ops)

15.075

14.785

CPU utilization

93%

93%

QPS (count)

image.png

image.png

Average response time (μs)

image.png

image.png

Instância de 7 nós

Topologia do conjunto de réplicas: um nó primário, cinco nós secundários e um nó oculto.

Write concern: {w:"majority"}

Item

Replicação em cadeia ativada

Replicação em cadeia desativada

Throughput (ops)

3.005

4.312

CPU utilization

56%

85%

QPS (count)

image.png

image.png

Average response time (μs)

image.png

image.png

Write concern: {w:1}

Item

Replicação em cadeia ativada

Replicação em cadeia desativada

Throughput (ops)

14.414

11.492

CPU utilization

91%

93%

QPS (count)

image.png

image.png

Average response time (μs)

image.png

image.png

Instância de 15 nós

Topologia do conjunto de réplicas: um nó primário, cinco nós secundários, um nó oculto e oito nós somente leitura.

Esta configuração possui 7 nós votantes e 8 nós não votantes (nós somente leitura não votam).

Write concern: {w:"majority"}

Item

Replicação em cadeia ativada

Replicação em cadeia desativada

Throughput (ops)

2.932

3.123

CPU utilization

58%

91%

QPS (count)

image.png

image.png

Average response time (μs)

image.png

image.png

Write concern: {w:1}

Item

Replicação em cadeia ativada

Replicação em cadeia desativada

Throughput (ops)

14.093

7.500

CPU utilization

90%

94%

QPS (count)

image.png

image.png

Average response time (μs)

image.png

image.png

Comparação de desempenho e resumo

  • Para um número fixo de nós, a configuração de write concern determina se desativar a replicação em cadeia degrada o desempenho de escrita.

    Write concern: {w:1}

    • Em instâncias de 3 nós, a degradação de desempenho ao desativar a replicação em cadeia é insignificante.

    • Em instâncias de 7 nós, desativar a replicação em cadeia causa uma degradação de desempenho de aproximadamente 20,3%.

    • Em instâncias de 15 nós, o desempenho cai 46,8% e a utilização de CPU do nó primário aumenta significativamente.

    Write concern: {w:"majority"}

    • Em instâncias de 3 nós, a perda de desempenho ao desativar a replicação em cadeia é insignificante.

    • Em instâncias de 7 e 15 nós, desativar a replicação em cadeia pode melhorar o desempenho em aproximadamente 6,5% a 43,5%.

      Motivo da melhoria de desempenho: desativar a replicação em cadeia encurta o caminho de sincronização para todos os nós do conjunto de réplicas, facilitando o atendimento à condição de maioria e reduzindo a latência de cada operação de escrita.

      Impacto dos nós não votantes: com um número fixo de 7 nós votantes, o ganho de desempenho obtido ao desativar a replicação em cadeia diminui à medida que mais nós não votantes são adicionados, devido ao aumento da carga de replicação no nó primário.

  • **Com as mesmas configurações de chainingAllowed e writeConcern, o desempenho de escrita diminui conforme o número de nós aumenta. A degradação é mais significativa quando a replicação em cadeia está desativada.**

    • Na configuração padrão (chainingAllowed:true e writeConcern:{w:"majority"}), a degradação de desempenho não é significativa ao expandir de 7 para 15 nós, pois um conjunto de réplicas pode ter no máximo 7 membros votantes, mantendo inalterada a condição de maioria.

    • O desempenho com writeConcern:{w:1} é significativamente superior ao obtido com writeConcern:{w:"majority"}, independentemente de a replicação em cadeia estar ativada. Esse comportamento é esperado dado o funcionamento dos write concerns.

    • Com uma configuração fixa de write concern, desativar a replicação em cadeia aumenta a utilização de CPU do nó primário de forma mais expressiva à medida que o número de nós cresce, em comparação com o cenário em que ela permanece ativada.

    Agrupado por configuração

    image.png

    Agrupado por quantidade de nós

    image.png

Melhores práticas

  • Em implantações com poucos nós, ativar ou desativar a replicação em cadeia não gera impacto significativo no desempenho da instância ou na utilização de CPU.

  • Para implantações com muitos nós:

    • Se o writeConcern for {w:1}, recomenda-se ativar a replicação em cadeia.

    • Se o writeConcern for {w:"majority"}, equilibre a carga do nó primário (como a utilização de CPU) com o desempenho da instância. Desativar a replicação em cadeia melhora o desempenho de escrita, mas aumenta significativamente a carga no nó primário.