Todos os produtos
Search
Central de documentação

ApsaraDB for MongoDB:Impacto no desempenho ao ativar logs de auditoria

Última atualização: Jul 20, 2026

Testes de benchmark quantificam a sobrecarga de desempenho causada pela ativação de logs de auditoria em instâncias do ApsaraDB for MongoDB para auxiliar na decisão sobre habilitar esse recurso.

Conclusões dos testes

A ativação de logs de auditoria afeta o desempenho da instância da seguinte forma:

  • Cargas de trabalho somente de escrita (operações puras de inserção ou atualização): o uso de CPU aumenta aproximadamente 3 pontos percentuais (aumento relativo de 15% a 20%), sem alteração significativa no tempo de resposta ou no throughput.

  • Cargas de trabalho mistas de leitura e escrita: o uso de CPU não apresenta mudança significativa, mas o desempenho geral de leitura e escrita diminui cerca de 15% a 20%. O tempo médio de resposta de escrita aumenta entre 500 e 700 μs e o de leitura entre 150 e 300 μs, enquanto o throughput cai de 15% a 20%.

Ambiente de teste

Parâmetro

Instância ECS de teste de estresse

Instância MongoDB

Região e zona

China (Hangzhou) Zone J

China (Hangzhou) Zone J

Tipo de rede

VPC

VPC

Família de tipos de instância

Computação otimizada c8i

Dedicada

Tipo de instância

ecs.c8i.4xlarge (16 vCPU, 32 GB)

mdb.shard.8x.16xlarge.d (64 vCPU, 512 GB)

Tipo de armazenamento

Disco em nuvem ESSD PL0 (disco do sistema), sem disco de dados

Disco em nuvem ESSD PL1

Largura de banda

100 Mbps

350 Mbps

Espaço de armazenamento

40 GiB (disco do sistema)

470 GB

Topologia

-

Instância de conjunto de réplicas padrão (3 nós: 1 nó primário, 1 nó secundário e 1 nó oculto)

Versão da imagem

CentOS 7.8 64 bits

-

Versão do kernel da instância

-

MongoDB 6.0 (versão menor do kernel 7.0.23)

Read/Write Concern

-

Read/write concern padrão

Nota

A instância ECS de teste de estresse e a instância do ApsaraDB for MongoDB estão na mesma região e zona. O tempo de ida e volta (RTT) entre elas é de aproximadamente 0,104 ms.

Ferramenta de teste

Estes testes de benchmark usam o YCSB (Yahoo! Cloud Serving Benchmark) 0.17.0, uma ferramenta de código source aberto.

Nota

O YCSB é uma ferramenta de benchmark baseada em Java com suporte a vários bancos de dados. Para instruções de instalação e uso, consulte YCSB.

Procedimento de teste

  1. Adicione o primary private IP address da instância ECS à lista de permissões de IP da instância do ApsaraDB for MongoDB. Para obter instruções, consulte Modify IP whitelist.

    Nota

    Faça login no ECS console e localize o primary private IP address da instância ECS na seção Network Information da página Instance Details.

  2. Conecte-se remotamente à instância ECS. Para obter instruções, consulte Connect to an ECS instance.

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

    ./bin/ycsb load mongodb -s -p workload=site.ycsb.workloads.CoreWorkload -p recordcount=10000000 -p mongodb.url="mongodb://root:xxx@dds-bp1be0f4f3bbdxxxx.mongodb.rds.aliyuncs.com:3717,dds-bp1be0f4f3bbdxxxx.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-xxxx" -threads 300

    Modifique os parâmetros a seguir conforme necessário:

    • recordcount=10000000: quantidade total de registros a carregar na instância MongoDB. Este teste carrega 10 milhões de registros.

    • mongodb.url="mongodb://root:xxx@dds-bp1be0f4f3bbdxxxx.mongodb.rds.aliyuncs.com:3717,dds-bp1be0f4f3bbdxxxx.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-xxxx": string de conexão da instância MongoDB. Este teste conecta-se ao banco de dados admin usando a conta root.

      Nota

      Encontre a string de conexão na seção Database Connections da página Internal Connections no ApsaraDB for MongoDB console.

    • threads=300: número de threads simultâneas do cliente.

  4. Execute o comando a seguir para realizar o teste de benchmark. O exemplo abaixo mostra o comando para uma carga de trabalho de 100% de atualizações:

    ./bin/ycsb run mongodb -s -p workload=site.ycsb.workloads.CoreWorkload -p recordcount=10000000 -p operationcount=500000000 -p insertproportion=0 -p readproportion=0 -p updateproportion=1 -p requestdistribution=zipfian -p mongodb.url="mongodb://root:xxx@dds-bp1be0f4f3bbdxxxx.mongodb.rds.aliyuncs.com:3717,dds-bp1be0f4f3bbdxxxx.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-xxxx" -threads 300 -target 100000

    Ajuste os seguintes parâmetros:

    • recordcount=10000000: total de registros carregados na instância MongoDB. Esse valor deve ser idêntico ao definido na Etapa 3.

    • operationcount=500000000: quantidade total de operações de leitura e escrita a executar. Este teste realiza 500 milhões de operações.

    • insertproportion=0: proporção de operações de inserção. O valor varia de 0 a 1, onde 1 representa 100%.

    • readproportion=0: proporção de operações de leitura. O valor varia de 0 a 1.

    • updateproportion=1: proporção de operações de atualização. O valor varia de 0 a 1.

    • mongodb.url="mongodb://root:xxx@dds-bp1be0f4f3bbdxxxx.mongodb.rds.aliyuncs.com:3717,dds-bp1be0f4f3bbdxxxx.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-xxxx": string de conexão da instância MongoDB. Obtenha esse valor conforme descrito na etapa anterior.

    • threads=300: número de threads simultâneas do cliente.

    • target=100000: throughput alvo em operações por segundo (ops/s). A meta deste teste é 100.000 ops/s.

Resultados dos testes

Ambiente

Tipo de instância

Versão do MongoDB

recordcount

threads

64 vCPU, 512 GB (dedicada)

MongoDB 6.0 (versão menor do kernel 7.0.23)

10000000

300

Cenários de teste

  • insert:read:update=100:0:0: carga de trabalho pura de inserção. O log de auditoria está ativado para operações de inserção.

  • insert:read:update=0:0:100: carga de trabalho pura de atualização. O log de auditoria está ativado para operações de atualização.

  • insert:read:update=50:50:0: 50% de inserções e 50% de leituras. O log de auditoria está ativado para operações de inserção e consulta.

  • insert:read:update=0:50:50: 50% de leituras e 50% de atualizações. O log de auditoria está ativado para operações de consulta e atualização.

  • insert:read:update=30:70:0: 30% de inserções e 70% de leituras. O log de auditoria está ativado para operações de inserção e consulta.

  • insert:read:update=0:70:30: 70% de leituras e 30% de atualizações. O log de auditoria está ativado para operações de consulta e atualização.

Métricas

  • CpuUsage: utilização de CPU da instância.

  • MongoDB_RT: tempo médio de resposta da instância, incluindo writes_avg_rt (tempo médio de resposta de escrita) e reads_avg_rt (tempo médio de resposta de leitura).

  • MongoDB_Opcounters: número de operações de consulta, inserção e atualização por segundo.

Resultados dos testes

A tabela a seguir resume como a ativação de logs de auditoria afeta o desempenho em cada cenário.

Cenário de teste

CpuUsage

MongoDB_RT

MongoDB_Opcounters

Inserção pura (100:0:0)

Aumento de 3 pontos percentuais (+15%)

Sem alteração significativa

Sem alteração significativa

Atualização pura (0:0:100)

Aumento de 3 pontos percentuais (+20%)

Sem alteração significativa

Sem alteração significativa

50% inserção + 50% leitura (50:50:0)

Sem alteração significativa

writes_avg_rt: +700 μs (+20%); reads_avg_rt: +300 μs (+250%)

query: -5.000 (-20%);

insert: -5.000 (-20%)

50% leitura + 50% atualização (0:50:50)

Sem alteração significativa

writes_avg_rt: +500 μs (+18%); reads_avg_rt: +150 μs (+200%)

query: -5.000 (-15%);

update: -5.000 (-15%)

30% inserção + 70% leitura (30:70:0)

Sem alteração significativa

writes_avg_rt: +600 μs (+20%); reads_avg_rt: +300 μs (+270%)

query: -12.000 (-20%);

insert: -5.000 (-20%)

70% leitura + 30% atualização (0:70:30)

Sem alteração significativa

writes_avg_rt: +500 μs (+20%); reads_avg_rt: +150 μs (+150%)

query: -10.000 (-15%); update: -5.000 (-15%)

Análise

  • Cargas de trabalho somente de escrita: o uso de CPU aumenta ligeiramente, mas o tempo de resposta e o throughput permanecem estáveis.

  • Cargas de trabalho mistas de leitura e escrita: o uso de CPU permanece inalterado, porém o throughput geral cai entre 15% e 20%, e os tempos de resposta de leitura e escrita aumentam consideravelmente.

Nota

O aumento percentual de reads_avg_rt parece elevado (150% a 270%) porque a linha de base é baixa (aproximadamente 100 μs). O aumento absoluto é de apenas 150 a 300 μs.