Todos os produtos
Search
Central de documentação

ApsaraDB for MongoDB:Teste de estresse de conexões máximas para instâncias de conjunto de réplicas

Última atualização: Jun 26, 2026

Verifique se as instâncias de conjunto de réplicas do ApsaraDB for MongoDB com diferentes especificações conseguem atingir o número máximo de conexões. Para isso, execute testes de estresse a partir de uma instância ECS que acesse as instâncias do ApsaraDB for MongoDB na mesma VPC.

Ambiente de teste

Crie uma instância ECS e uma instância de conjunto de réplicas do ApsaraDB for MongoDB. Consulte Criar uma instância de conjunto de réplicas e Criar uma instância ECS.

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

Item de configuração

Instância ECS

Instância do ApsaraDB for MongoDB com discos em nuvem

Instância do ApsaraDB for MongoDB com discos locais

Região e zona

Beijing Zone H

Beijing Zone H

Beijing Zone H

Tipo de rede

Virtual Private Cloud (VPC)

VPC

VPC

Categoria da instância

c6e, família de instâncias otimizadas para computação com desempenho aprimorado

Uso geral e dedicada

Uso geral e dedicada

Tipo de instância

ecs.c6e.2xlarge

Três tipos de instância testados. Resultados do teste.

Dois tipos de instância testados. Resultados do teste.

Tipo de armazenamento

Discos Enterprise SSD (ESSD) AutoPL

ESSDs

SSDs locais

Imagem ou versão do mecanismo

Alibaba Cloud Linux 3.2104 LTS 64 bits

4.19.91-26.al7.x86_64

3.10.0-327.ali2017.alios7.x86_64

Versão do kernel

N/D

  • Versão principal: MongoDB 4.4

  • Linha de base da versão secundária: 4.4.28

  • Versão principal: MongoDB 4.2

  • Linha de base da versão secundária: 4.2.23

  • A instância do ApsaraDB for MongoDB utiliza uma arquitetura de três nós: primário, secundário e oculto.

  • As instâncias ECS e do ApsaraDB for MongoDB estão na mesma zona, com um RTT médio de 0.103 ms.

Ferramenta de teste

Método de teste

  1. Adicione o primary private IP address da instância ECS a uma lista de permissões da instância do ApsaraDB for MongoDB. Para mais informações, consulte Modificar uma lista de permissões.

    Nota

    Acesse o ECS console e visualize o Primary Private IP Address da instância ECS na seção Configuration Information da página Instance Details.

  2. Conecte-se à instância ECS. Para mais informações, consulte Criar e gerenciar uma instância ECS usando o ECS console (versão express).

  3. Utilize a ferramenta YCSB para carregar os dados de teste.

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

    Modifique as seguintes configurações:

    • recordcount=1000000: total de registros carregados na instância do ApsaraDB for MongoDB.

    • mongodb.url="mongodb://test:**@dds-bp13e84d11**.mongodb.rds.aliyuncs.com:3717/admin": string de conexão da instância do ApsaraDB for MongoDB. Conta: test, banco de dados: admin.

      Nota

      Acesse o ApsaraDB for MongoDB console. Na página Database Connection, encontre a string de conexão na seção Internal Connections - VPC.

    • threads 8: número de threads de cliente simultâneas.

  4. Execute o teste de estresse:

    ./bin/ycsb.sh run mongodb -s -p workload=site.ycsb.workloads.CoreWorkload -p recordcount=10000000 -p operationcount=5000000 -p readproportion=50 -p updateproportion=50 -p requestdistribution=zipfian -p mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin&maxPoolSize=8000" -p table=test -threads 8000

    Modifique as seguintes configurações:

    • recordcount=1000000: total de registros carregados na instância do ApsaraDB for MongoDB.

    • operationcount=5000000: total de operações de leitura e gravação.

    • insertproportion=0: proporção de inserção.

    • readproportion=50: proporção de leitura.

    • updateproportion=50: proporção de atualização.

    • mongodb.url="mongodb://test:**@dds-bp13e84d11**.mongodb.rds.aliyuncs.com:3717/admin": string de conexão da instância do ApsaraDB for MongoDB. Conta: test, banco de dados: admin.

      Nota
      • Acesse o ApsaraDB for MongoDB console. Na página Database Connection, encontre a string de conexão na seção Internal Connections - VPC.

      • Especifique o parâmetro maxPoolSize. Caso contrário, o valor padrão de 100 será aplicado, o que pode causar erros MongoWaitQueueFullException e impedir que o teste atinja o número máximo de conexões alvo.

  5. Visualize os dados de monitoramento. Consulte Monitoramento de nó (anteriormente monitoramento básico).

    Na aba Node Monitoring, selecione o intervalo de tempo do teste e visualize as métricas de CPU Utilization, Memory Usage, QPS, Connections e Connection Usage.

Informações adicionais sobre o teste de estresse para 96.000 conexões

O YCSB depende do Java. A memória heap da JVM é limitada, portanto, testes com mais de 20.000 threads simultâneas retornam o erro Cannot allocate memory.image

Aumentar o JAVA_OPTS não resolve esse problema. Em vez disso, utilize um programa personalizado para teste de estresse: ele gera threads ciclicamente, e cada uma cria um MongoClient que executa uma consulta e mantém a conexão aberta sem liberá-la.

Um único cliente de teste de estresse possui portas limitadas e não consegue atingir 96.000 conexões (necessário para especificações de 32 núcleos e 128 GB). Execute o mesmo programa em várias máquinas.

Consulte o intervalo de portas atual:

sysctl net.ipv4.ip_local_port_range

Exemplo de saída:

net.ipv4.ip_local_port_range = 40000    65535

Expanda o intervalo de portas antes do teste:

sudo sysctl -w net.ipv4.ip_local_port_range="10240 65535"

Resultados do teste

Instância que utiliza ESSDs

Instância dedicada com 4 núcleos e 8 GB de memória

Número máximo de conexões: 8.000

QPS

Conexões

Utilização de conexão

Utilização de CPU

Uso de memória

image.png

image.png

image.png

image.png

image.png

Nota

A granularidade de nível de minuto na aba Node Monitoring pode não exibir o pico de conexões. As conexões reais atingiram 8.000, o que pode ser verificado por meio de monitoramento granular ou do subdocumento connections na saída do serverStatus.image

Instância dedicada com 32 núcleos e 128 GB de memória

Número máximo de conexões: 96.000

QPS

Conexões

Utilização de conexão

Utilização de CPU

Uso de memória

image.png

image.png

image.png

image.png

image.png

Nota

O teste de 96.000 conexões utiliza uma ferramenta diferente dos testes de 8.000 e 16.000, portanto, as métricas de QPS, CPU e memória não são diretamente comparáveis.

Instância de uso geral com 8 núcleos e 32 GB de memória

Número máximo de conexões: 16.000

QPS

Conexões

Utilização de conexão

Utilização de CPU

Uso de memória

image.png

image.png

image.png

image.png

image.png

Instâncias que utilizam discos locais

Instância de uso geral com 16 núcleos e 64 GB de memória

Número máximo de conexões: 32.000

QPS

Conexões

Utilização de conexão

Utilização de CPU

Uso de memória

image.png

image.png

image.png

image.png

image.png

Nota

Com a granularidade de nível de minuto, alguns pontos de dados apresentam lacunas para a instância de 16 núcleos e 64 GB, pois os comandos de coleta expiraram com a CPU em 100%. As conexões reais nesses pontos permaneceram em 32.000.

Instância dedicada com 2 núcleos e 16 GB de memória

Número máximo de conexões: 8.000

QPS

Conexões

Utilização de conexão

Utilização de CPU

Uso de memória

image.png

image.png

image.png

image.png

image.png

Resumo

  • As instâncias de conjunto de réplicas do ApsaraDB for MongoDB de todas as especificações e tipos de armazenamento testados atingiram o número máximo de conexões.

  • Após atingir o máximo, as conexões subsequentes são rejeitadas. As aplicações sofrem com alta latência ou solicitações travadas devido a falhas de conexão.

  • Mais conexões simultâneas consomem mais CPU e memória. Ajuste a quantidade de conexões com base nos requisitos do seu negócio.