Todos os produtos
Search
Central de documentação

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

Última atualização: Jun 26, 2026

O ApsaraDB for MongoDB oferece suporte a logs de auditoria. Testes de benchmark quantificam a sobrecarga de desempenho dessa ativação, o que ajuda a avaliar se convém ativar os logs de auditoria nas suas instâncias.

Conclusões dos testes

A ativação dos logs de auditoria afeta o desempenho da instância do ApsaraDB for MongoDB da seguinte forma:

  • Cargas de trabalho exclusivamente de escrita (operações puras de inserção ou atualização): o uso de CPU aumenta em 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 alteração significativa, mas o desempenho geral de leitura e escrita diminui em aproximadamente 15% a 20%. Especificamente, o tempo médio de resposta de escrita aumenta em 500 a 700 μs, e o de leitura aumenta em 150 a 300 μs, enquanto o throughput cai entre 15% e 20%.

Ambiente de teste

Parâmetro

Instância ECS do teste de estresse

Instância do MongoDB

Região e zona

China (Hangzhou) Zona J

China (Hangzhou) Zona J

Tipo de rede

VPC

VPC

Família de tipos de instância

Compute-optimized c8i

dedicated

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 secundária do kernel 7.0.23)

Read/Write Concern

-

Read/Write Concern padrão

Nota

A instância ECS do teste de estresse e a instância do ApsaraDB for MongoDB estão na mesma região e zona. O Round-Trip Time (RTT) entre elas é de aproximadamente 0.104 ms.

Ferramenta de teste

Os testes de benchmark utilizam a ferramenta de código aberto YCSB (Yahoo! Cloud Serving Benchmark) 0.17.0.

Nota

O YCSB é uma ferramenta de benchmark baseada em Java com suporte a vários bancos de dados. Para obter 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 mais instruções, consulte Modificar lista de permissões de IP.

    Nota

    Acesse o console do ECS e encontre 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 mais instruções, consulte Conectar-se a uma instância ECS.

  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 seguintes parâmetros conforme necessário:

    • recordcount=10000000: O número total de registros a carregar na instância do 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": A string de conexão da instância do MongoDB. Este teste conecta-se ao banco de dados admin com a conta root.

      Nota

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

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

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

    ./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: O número total de registros carregados na instância do MongoDB. Esse valor deve ser idêntico ao da Etapa 3.

    • operationcount=500000000: O número total de operações de leitura e escrita a executar. Este teste executa 500 milhões de operações.

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

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

    • updateproportion=1: A 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": A string de conexão da instância do MongoDB. Obtenha esse valor conforme descrito na etapa anterior.

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

    • target=100000: O throughput alvo em operações por segundo (ops/sec). O alvo para este teste é de 100.000 ops/sec.

Resultados dos testes

Ambiente

Tipo de instância

Versão do MongoDB

recordcount

threads

64 vCPU, 512 GB (dedicated)

MongoDB 6.0 (versão secundária do kernel 7.0.23)

10000000

300

Cenários de teste

  • insert:read:update=100:0:0: Carga de trabalho de inserção pura. O log de auditoria registra operações de inserção.

  • insert:read:update=0:0:100: Carga de trabalho de atualização pura. O log de auditoria registra operações de atualização.

  • insert:read:update=50:50:0: 50% de inserções e 50% de leituras. O log de auditoria registra as 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 registra as 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 registra as 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 registra as operações de consulta e atualização.

Métricas

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

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

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

Resultados dos testes

A tabela a seguir resume as alterações de desempenho após a ativação dos logs de auditoria 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% de inserção + 50% de 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% de leitura + 50% de 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% de inserção + 70% de 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% de leitura + 30% de 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 exclusivamente de escrita: o uso de CPU aumenta ligeiramente, mas o tempo de resposta e o throughput permanecem estáveis. A ativação de logs de auditoria em cenários exclusivamente de escrita gera sobrecarga mínima.

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

Nota

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