Todos os produtos
Search
Central de documentação

Elastic Compute Service:Acelere aplicações TCP com NetACC

Última atualização: Jul 03, 2026

Contexto:

Solicitação da equipe de operações: adicionar notas de uso para o NetACC, com revisão e validação item por item.

O NetACC é uma biblioteca em modo usuário que acelera aplicações TCP via eRDMA com interfaces de socket compatíveis, sem necessidade de alterações no código.

Importante

O NetACC está em preview público.

Casos de uso

O NetACC é ideal para cenários com alta sobrecarga de rede.

  • Cargas de trabalho com alta taxa de pacotes por segundo (PPS), especialmente tráfego de pacotes pequenos. O NetACC reduz a sobrecarga da CPU e melhora o throughput, como no processamento de requisições pelo Redis.

  • Cargas sensíveis à latência: o eRDMA oferece latência menor que o TCP e acelera as respostas de rede.

  • Conexões frequentes de curta duração: o NetACC acelera o estabelecimento de conexões, reduz o tempo de criação e melhora o desempenho.

Instale o NetACC

  • Métodos de instalação

    • Use o driver eRDMA para instalar o NetACC

      O NetACC é instalado automaticamente junto com o driver eRDMA. Consulte Ativar eRDMA no tópico "Usar eRDMA".

    • Instale o NetACC separadamente

      Para instalar uma versão específica do NetACC ou usá-lo temporariamente em uma instância ECS, execute:

      sudo curl -fsSL https://netacc-release.oss-cn-hangzhou.aliyuncs.com/release/netacc_download_install.sh | sudo sh
  • Arquivo de configuração e parâmetros otimizados

    Após a instalação, o sistema gera automaticamente o arquivo de configuração /etc/netacc.conf. Ajuste os seguintes parâmetros conforme sua carga de trabalho:

    • NACC_SOR_MSG_SIZE: tamanho do buffer.

    • NACC_RDMA_MR_MIN_INC_SIZE: tamanho da primeira Memory Region (MR) registrada pelo RDMA.

    • NACC_RDMA_MR_MAX_INC_SIZE: tamanho máximo da MR registrada pelo RDMA.

    • NACC_SOR_CONN_PER_QP: conexões por Queue Pair (QP).

    • NACC_SOR_IO_THREADS: número de threads do NetACC.

    Veja a seguir um exemplo de arquivo de configuração:

    Exemplo de arquivo de configuração /etc/netacc.conf

    [netacc]
    # The size of a buffer. If a data block to be sent is large, you can increase the size to improve performance or reduce the size to save memory. 
    # int
    NACC_SOR_MSG_SIZE=16384
    
    # The size of the first MR registered by RDMA. You can reduce the size to save memory.
    # Set this parameter to a value that is the Nth power multiple of 2 of the NACC_SOR_MSG_SIZE value. The minimum multiple is 1.
    NACC_RDMA_MR_MIN_INC_SIZE=16384
    
    # The maximum size of an MR registered by RDMA, which ranges from 1 MB to 512 MB. You can reduce the size to save memory.
    # Set this parameter to a value that is the Nth power multiple of 2 of the NACC_RDMA_MR_MIN_INC_SIZE value. The minimum multiple is 1.
    NACC_RDMA_MR_MAX_INC_SIZE=8388608
    
    # The number of connections per QP. You can increase the value to improve performance. In specific scenarios, set this parameter to 1.
    # int
    NACC_SOR_CONN_PER_QP=1
    
    # The number of NetACC threads. If the throughput is high, increase the value.
    # int
    NACC_SOR_IO_THREADS=1
    
    # The expiration time of empty QPs. Unit: milliseconds. A value of 0 specifies that the empty QPs immediately expire. A value of -1 specifies that the empty QPs never expire.
    NACC_EMPTY_QP_EXPIRE_MS=60000
    
    # The maximum number of empty QPs allowed.
    NACC_EMPTY_QP_MAX_ALL=100
    
    # The maximum number of empty QPs allowed for each destination address.
    NACC_EMPTY_QP_MAX_PER=10
    
    # The probability of using RDMA to establish connections. Valid values: 0 to 100.
    NACC_CONNECT_RDMA_PERCENT=100
    
    # Specifies whether RDMA is enabled by default.
    NACC_ENABLE_RDMA_DEFAULT=1
    
    # The log level.
    # 0: TRACE
    # 1: DEBUG
    # 2: INFO
    # 3: WARN
    # 4: ERROR
    # 5: FATAL
    NACC_LOG_LEVEL=3
    
    # The log path.
    NACC_LOG_PATH="/tmp/netacc.log"
    
    # The following parameters are infrequently used or do not need to be configured.
    
    # The thread affinity.
    # string
    NACC_SOR_AFFINITY=""
    
    # Specifies whether to preferentially use TCP to establish a connection.
    # bool
    NACC_CONN_TCP_FIRST=0

Use o NetACC

Utilize o NetACC em aplicações executando o comando netacc_run ou definindo a variável de ambiente LD_PRELOAD. Leia a seção Notas de uso antes de prosseguir.

Execute o comando netacc_run

O netacc_run carrega o NetACC na inicialização da aplicação. Adicione o prefixo netacc_run ao comando da sua aplicação para iniciá-la com o NetACC ativado.

O netacc_run aceita parâmetros como -t (threads de I/O) e -p (conexões por QP). Os parâmetros especificados ao executar o comando netacc_run substituem os valores do arquivo de configuração.

Parâmetros do comando netacc_run

netacc_run -h
Usage: netacc_run [ OPTIONS ] COMMAND

Run COMMAND using NetACC for TCP sockets

OPTIONS:
   -f <path>   set config file, default /etc/netacc.conf
   -p <num>    set max connections per QP, default 1
   -t <num>    set netacc io threads, default 4
   -s <num>    set netacc message size, default 16384
   -F <num>    fast connect mode, default 0
   -d          enable debug mode
   -T          use TCP first in connect
   -P <num>    polling cq time ms
   -A <str>    affinity CPU list, 0 | 1-3 | 1,3,4
   -i <num>    set cq comp_vector, default 0
   -h          display this message
   -v          display version info
  • Exemplos:

    Os exemplos abaixo utilizam o Redis. Adicione o prefixo netacc_run a um comando do Redis para iniciá-lo com o NetACC.

    • Inicie o Redis com o NetACC:

      netacc_run redis-server
    • Inicie o redis-benchmark com o NetACC:

      netacc_run redis-benchmark

Configure a variável de ambiente **LD_PRELOAD**

A variável de ambiente LD_PRELOAD especifica bibliotecas compartilhadas pré-carregadas na inicialização do programa. Defina-a como a biblioteca do NetACC na variável LD_PRELOAD para automatizar o carregamento.

  1. Consulte a localização da biblioteca dinâmica do NetACC:

    ldconfig -p | grep netacc

    Saída de exemplo:

    image

  2. Defina a variável de ambiente LD_PRELOAD para a biblioteca compartilhada do NetACC:

    LD_PRELOAD=/lib64/libnetacc-preload.so your_application

    Substitua your_application pela aplicação desejada.

    Exemplos (Redis):

    • Inicie o Redis com o NetACC:

      LD_PRELOAD=/lib64/libnetacc-preload.so redis-server
    • Inicie o redis-benchmark com o NetACC:

      LD_PRELOAD=/lib64/libnetacc-preload.so redis-benchmark

    Configure a variável de ambiente LD_PRELOAD em um script

    Para carregar o NetACC automaticamente em aplicações frequentes ou gerenciar várias aplicações com um script, defina LD_PRELOAD em um script wrapper. Por exemplo, crie um script chamado run_with_netacc.

    #!/bin/bash
    LD_PRELOAD=/lib64/libnetacc-preload.so $@

    Inicie uma aplicação com o NetACC:

    ./run_with_netacc.sh your_application

    Exemplos (Redis):

    • Inicie o Redis com o NetACC:

      ./run_with_netacc.sh redis-server
    • Inicie o redis-benchmark com o NetACC:

      ./run_with_netacc.sh redis-benchmark

Monitore o NetACC

O netacc_ss é a ferramenta de monitoramento do NetACC. Execute o comando netacc_ss para verificar o status de transferência de dados dos processos TCP acelerados pelo NetACC. É possível executá-lo tanto no servidor quanto no cliente.

Comando netacc_ss

netacc_ss -h
Usage:
 netacc_ss: [-p] <pid> [options]...
 Show monitoring information of specified netacc process

Options:
 -c   clear unused sock file
 -h   display this help
 -s   display specified monitoring metric[s]. [all|cfg|cnt|mem|qp|sock]
      all: all monitoring information
      cfg: configuration information
      cnt: counter information[default]
      mem: memory information
      qp : queue pair information
      sock: socket information
 -v   display netacc version

Examples:
 netacc_ss -p 12345 -s mem,cnt

Consulte o status de transferência de dados dos processos TCP acelerados pelo NetACC:

netacc_ss -s all -p <Process ID>
Nota

Para consultar um id de processo, execute ps -ef | grep <Process name>.

Notas de uso

  • Apenas conexões TCP estabelecidas por meio de ENIs com o recurso eRDMA Interface (ERI) ativado são convertidas para conexões RDMA. As demais conexões permanecem como TCP.

    Nota

    Se nenhuma das extremidades da comunicação possuir uma ENI com ERI ativado, o NetACC reverte para TCP.

  • Descritores de arquivo de socket RDMA não podem ser enviados a outros processos via IPC do kernel.

    Nota

    As conexões RDMA estão vinculadas a QPs específicos que não podem ser compartilhados entre processos.

  • O NetACC não suporta IPv6. Para evitar conflitos, desative o IPv6 executando sysctl net.ipv6.conf.all.disable_ipv6=1.

  • Não há suporte para atualizações a quente no NetACC. Interrompa todos os processos acelerados pelo NetACC antes de atualizá-lo.

  • O NetACC não suporta algumas opções de socket TCP, como SO_REUSEPORT, SO_ZEROCOPY e TCP_INQ.

  • O NetACC depende da glibc e não funciona em ambientes sem glibc, como Golang.

  • Antes de usar o NetACC, defina a memória bloqueável máxima como ilimitada executando ulimit -l unlimited.

    Nota

    Se o valor de ulimit -l for muito baixo, o RDMA pode falhar ao registrar MRs que excedam o limite.

  • Quando uma aplicação acelerada pelo NetACC escuta em uma porta TCP, o NetACC também escuta em uma porta RDMA (porta TCP + 20000) para transferência de dados via RDMA.

    Nota

    Se a porta RDMA estiver ocupada ou fora do intervalo válido, a conexão falhará. Aloque as portas adequadamente para evitar conflitos.

  • Um processo filho não herda conexões de socket estabelecidas pelo processo pai após uma chamada fork().

    Nota

    O processo filho deve estabelecer uma nova conexão de socket.

  • A reutilização de QP é desativada por padrão.

    • Para ativar a reutilização de QP, defina conexões por QP (-p) com um valor maior que 1 por meio do parâmetro NACC_SOR_CONN_PER_QP no arquivo de configuração do NetACC ou no comando netacc_run.

    • A reutilização de QP reduz a quantidade de QPs, a sobrecarga de gerenciamento e o consumo de recursos, melhorando a eficiência da comunicação em cenários de alta concorrência.

    • Com a reutilização de QP ativada, múltiplas conexões RDMA podem compartilhar um número de porta local, pois os números de porta identificam QPs, e não conexões individuais.

      Nota

      Se suas aplicações exigirem números de porta local distintos (por exemplo, para serviços diferentes), desative a reutilização de QP para evitar conflitos de porta.

Use o NetACC em aplicações Redis

Benefícios do NetACC para aplicações Redis

  • Melhoria no throughput do sistema

    O NetACC reduz a sobrecarga da CPU e aumenta o throughput em cargas de trabalho Redis com alto PPS.

  • Respostas de rede aceleradas

    O NetACC aproveita a baixa latência do eRDMA para acelerar as respostas de rede do Redis.

NetACC em benchmarks de desempenho do Redis

O Redis-benchmark é um utilitário nativo do Redis que mede o desempenho do servidor simulando requisições simultâneas de clientes.

Cenário de teste

Use o NetACC com o redis-benchmark para simular 100 clientes em 4 threads enviando 5 milhões de requisições SET.

Parâmetros comuns usados com o comando redis-server

O comando redis-server inicia o servidor Redis. Execute redis-server -h para visualizar os parâmetros disponíveis. Exemplo:

redis-server --port 6379 --protected-mode no
  • --port 6379: Porta para iniciar o Redis. Padrão: 6379.

  • --protected-mode no: Desativa o modo protegido. Quando o modo protegido está ativado, o Redis aceita apenas conexões de localhost (127.0.0.1) e rejeita conexões externas. Definir isso como no permite conexões de todos os endereços ip.

    Importante

    Desativar o modo protegido em um ambiente de produção expõe o servidor a riscos de segurança. Tenha cautela em ambientes de rede abertos.

Parâmetros de comando comuns usados com redis-benchmark

O redis-benchmark é uma ferramenta de teste de estresse do Redis que simula vários clientes enviando requisições. Execute redis-benchmark --help para visualizar os parâmetros disponíveis. Exemplo:

redis-benchmark -h 172.17.0.90 -p 6379 -c 100 -n 5000000 -r 10000 --threads 4 -d 512 -t set
  • -h 172.17.0.90: Nome do host ou endereço ip do servidor Redis. Neste exemplo, definido como 172.17.0.90.

  • -p 6379: Porta do Redis. Padrão: 6379.

    Nota

    Para verificar a porta do Redis, execute sudo grep "^port" /<Path in which the redis.conf file is stored>/redis.conf. Por padrão, o redis.conf está em /etc/redis.conf.

  • -c 100: Número de conexões simultâneas.

  • -n 5000000: Número total de requisições.

  • -r 10000: Intervalo de chaves aleatórias. O comando SET usa inteiros aleatórios de 0 a 9999 como parte das chaves.

  • --threads 4: Número de threads. Por padrão, o redis-benchmark usa uma thread.

  • -d 512: Tamanho dos dados por requisição SET em bytes.

  • -t set: Executa apenas o teste especificado. O parâmetro -t é seguido pelo nome do comando a ser testado. Aqui, set testa apenas o comando SET.

Este comando usa 4 threads para estabelecer 100 conexões simultâneas ao servidor Redis em 172.17.0.90 e enviar 5 milhões de requisições SET com payloads de 512 bytes, usando chaves aleatórias de 0 a 9999.

Métricas comuns nos resultados de benchmark do redis-benchmark

  • Resumo de throughput:

    rps: requisições que o servidor Redis processa por segundo. Por exemplo, 332933.81 requests per second significa aproximadamente 332.934 requisições/segundo.

  • Resumo de latência (unidade: milissegundos):

    • avg: tempo médio de resposta em todas as requisições.

    • min: menor tempo de resposta entre todas as requisições.

    • p50: 50% das requisições concluídas dentro desta latência.

    • p95: 95% das requisições concluídas dentro desta latência.

    • p99: 99% das requisições concluídas dentro desta latência.

    • max: maior tempo de resposta entre todas as requisições.

Pré-requisitos

Crie duas instâncias ECS compatíveis com eRDMA. Selecione Auto-install eRDMA Driver e eRDMA Interface para ativar o ERI na ENI primária. Use uma instância como servidor Redis e a outra como cliente.

Configurações das instâncias:

  • Imagem: Alibaba Cloud Linux 3

  • Tipo de instância: ecs.g8ae.4xlarge

  • Endereço ip privado da ENI primária: 172.17.0.90 (servidor) e 172.17.0.91 (cliente). Substitua pelos valores reais no seu benchmark.

    Nota
    • Este benchmark ativa o ERI nas ENIs primárias. 172.17.0.90 é o ip privado da ENI primária da instância do servidor Redis.

    • Se o ERI estiver ativado em ENIs secundárias, use seus endereços ip privados. Consulte Ativar eRDMA no tópico "Usar eRDMA".

Exemplo de como configurar parâmetros específicos durante a criação da instância ECS

Observe os seguintes parâmetros ao criar as instâncias. Para outros parâmetros, consulte Iniciar instâncias ECS personalizadas.

  • Instances & Images: Selecione um tipo de instância que suporte eRDMA e instale o driver eRDMA.

    • Instance: Consulte Limitações.

    • Images: Selecione Public Image e depois selecione Install eRDMA Driver. O driver eRDMA é instalado automaticamente quando a instância inicia.

      image

  • ENIs: À direita de Primary ENI, ative o recurso ERI para vincular um ERI à instância ECS.

    Nota

    Ao criar uma instância de nível empresarial, você pode ativar o recurso ERI apenas para a ENI primária. Se precisar configurar o eRDMA para uma ENI secundária, ative o recurso ERI para a ENI secundária no console ou chamando uma operação de api. Para mais informações, consulte Interface de rede RDMA elástica (ERI).

Procedimento

  1. Conecte-se a ambas as instâncias ECS (servidor e cliente Redis).

    Consulte Usar o Workbench para fazer login em uma instância Linux via SSH.

  2. Verifique se o driver eRDMA está instalado.

    Após o início das instâncias, execute ibv_devinfo para verificar o status do driver eRDMA.

    • A saída a seguir indica que o driver está instalado.

      image

    • A saída a seguir indica que o driver está sendo instalado. Aguarde alguns minutos e tente novamente.

      image

  3. Instale o Redis em ambas as instâncias:

    sudo yum install -y redis

    A saída a seguir indica que o Redis foi instalado.

    image

  4. Faça o benchmark do desempenho do Redis com o redis-benchmark.

    Realize um benchmark usando o NetACC

    1. Na instância do servidor Redis, inicie o Redis com o NetACC:

      netacc_run redis-server --port 6379 --protected-mode no
      Nota

      A saída a seguir indica que o Redis foi iniciado com sucesso.

      image

    2. Na instância cliente do Redis, inicie o redis-benchmark com o NetACC:

       netacc_run redis-benchmark -h 172.17.0.90 -p 6379 -c 100 -n 5000000 -r 10000 --threads 4 -d 512 -t set
      Nota

      Exemplo de resultado de benchmark do Redis

      ====== SET ======                                                      
        5000000 requests completed in 6.52 seconds
        100 parallel clients
        512 bytes payload
        keep alive: 1
        host configuration "save": 3600 1 300 100 60 10000
        host configuration "appendonly": no
        multi-thread: yes
        threads: 4
      
      Latency by percentile distribution:
      0.000% <= 0.039 milliseconds (cumulative count 3)
      50.000% <= 0.127 milliseconds (cumulative count 2677326)
      75.000% <= 0.143 milliseconds (cumulative count 3873096)
      87.500% <= 0.151 milliseconds (cumulative count 4437348)
      93.750% <= 0.159 milliseconds (cumulative count 4715347)
      96.875% <= 0.175 milliseconds (cumulative count 4890339)
      98.438% <= 0.183 milliseconds (cumulative count 4967042)
      99.609% <= 0.191 milliseconds (cumulative count 4991789)
      99.902% <= 0.207 milliseconds (cumulative count 4995847)
      99.951% <= 0.263 milliseconds (cumulative count 4997733)
      99.976% <= 0.303 milliseconds (cumulative count 4998853)
      99.988% <= 0.343 milliseconds (cumulative count 4999403)
      99.994% <= 0.367 milliseconds (cumulative count 4999704)
      99.997% <= 0.391 milliseconds (cumulative count 4999849)
      99.998% <= 2.407 milliseconds (cumulative count 4999924)
      99.999% <= 5.407 milliseconds (cumulative count 4999962)
      100.000% <= 6.847 milliseconds (cumulative count 4999981)
      100.000% <= 8.423 milliseconds (cumulative count 4999991)
      100.000% <= 8.919 milliseconds (cumulative count 4999996)
      100.000% <= 9.271 milliseconds (cumulative count 4999998)
      100.000% <= 9.471 milliseconds (cumulative count 4999999)
      100.000% <= 9.583 milliseconds (cumulative count 5000000)
      100.000% <= 9.583 milliseconds (cumulative count 5000000)
      
      Cumulative distribution of latencies:
      18.820% <= 0.103 milliseconds (cumulative count 941003)
      99.917% <= 0.207 milliseconds (cumulative count 4995847)
      99.977% <= 0.303 milliseconds (cumulative count 4998853)
      99.998% <= 0.407 milliseconds (cumulative count 4999879)
      99.998% <= 0.503 milliseconds (cumulative count 4999903)
      99.998% <= 0.703 milliseconds (cumulative count 4999904)
      99.998% <= 0.807 milliseconds (cumulative count 4999905)
      99.998% <= 0.903 milliseconds (cumulative count 4999906)
      99.998% <= 1.007 milliseconds (cumulative count 4999908)
      99.998% <= 1.103 milliseconds (cumulative count 4999909)
      99.998% <= 1.207 milliseconds (cumulative count 4999912)
      99.998% <= 1.407 milliseconds (cumulative count 4999913)
      99.998% <= 1.503 milliseconds (cumulative count 4999915)
      99.998% <= 1.607 milliseconds (cumulative count 4999916)
      99.998% <= 1.703 milliseconds (cumulative count 4999917)
      99.998% <= 1.807 milliseconds (cumulative count 4999918)
      99.998% <= 1.903 milliseconds (cumulative count 4999919)
      99.998% <= 2.103 milliseconds (cumulative count 4999920)
      99.999% <= 3.103 milliseconds (cumulative count 4999931)
      99.999% <= 4.103 milliseconds (cumulative count 4999944)
      99.999% <= 5.103 milliseconds (cumulative count 4999958)
      99.999% <= 6.103 milliseconds (cumulative count 4999971)
      100.000% <= 7.103 milliseconds (cumulative count 4999984)
      100.000% <= 8.103 milliseconds (cumulative count 4999989)
      100.000% <= 9.103 milliseconds (cumulative count 4999996)
      100.000% <= 10.103 milliseconds (cumulative count 5000000)
      
      Summary:
        throughput summary: 767341.94 requests per second
        latency summary (msec):
                avg       min       p50       p95       p99       max
              0.126     0.032     0.127     0.167     0.183     9.583

      O resumo mostra aproximadamente 770.000 requisições/segundo. Para detalhes das métricas, consulte Métricas comuns nos resultados de benchmark do redis-benchmark.

    Use o netacc_ss para monitorar o servidor Redis durante o benchmark

    Durante o benchmark, use o netacc_ss na instância do servidor Redis para monitorá-lo.

    • Consulte o id do processo Redis (redis-server):

      ps -ef | grep redis-server

      A saída a seguir mostra que o id do processo redis-server é 114379.

      image

    • Consulte o status de conexão e transferência de dados do Redis:

      netacc_ss -p 114379 -s all
      Nota

      Substitua 114379 pelo id real do processo Redis. Consulte Comando netacc_ss.

      A saída mostra uma conexão RDMA porque o ERI está ativado em ambas as instâncias. As quatro colunas mais à direita mostram contagens e volumes de mensagens.

      image

    Realize um benchmark sem o NetACC

    1. Na instância do servidor Redis, inicie o Redis:

      redis-server --port 6379 --protected-mode no --save
      Nota

      Substitua 6379 pela sua porta real. Consulte Parâmetros comuns usados com o comando redis-server.

      A saída a seguir indica que o Redis foi iniciado com sucesso.

      image

    2. Na instância cliente do Redis, inicie o redis-benchmark:

       redis-benchmark -h 172.17.0.90 -c 100 -n 5000000 -r 10000 --threads 4 -d 512 -t set
      Nota

      Exemplo de resultado de benchmark do Redis

      ====== SET ======                                                         
        5000000 requests completed in 15.02 seconds
        100 parallel clients
        512 bytes payload
        keep alive: 1
        host configuration "save": 
        host configuration "appendonly": no
        multi-thread: yes
        threads: 4
      
      Latency by percentile distribution:
      0.000% <= 0.055 milliseconds (cumulative count 27)
      50.000% <= 0.287 milliseconds (cumulative count 2635010)
      75.000% <= 0.335 milliseconds (cumulative count 3782931)
      87.500% <= 0.367 milliseconds (cumulative count 4459136)
      93.750% <= 0.391 milliseconds (cumulative count 4720397)
      96.875% <= 0.415 milliseconds (cumulative count 4855130)
      98.438% <= 0.439 milliseconds (cumulative count 4936478)
      99.219% <= 0.455 milliseconds (cumulative count 4965765)
      99.609% <= 0.471 milliseconds (cumulative count 4984031)
      99.805% <= 0.487 milliseconds (cumulative count 4993326)
      99.902% <= 0.495 milliseconds (cumulative count 4995579)
      99.951% <= 0.511 milliseconds (cumulative count 4997659)
      99.976% <= 0.551 milliseconds (cumulative count 4998848)
      99.988% <= 0.599 milliseconds (cumulative count 4999468)
      99.994% <= 0.631 milliseconds (cumulative count 4999722)
      99.997% <= 0.663 milliseconds (cumulative count 4999862)
      99.998% <= 0.695 milliseconds (cumulative count 4999924)
      99.999% <= 0.759 milliseconds (cumulative count 4999964)
      100.000% <= 0.807 milliseconds (cumulative count 4999982)
      100.000% <= 1.935 milliseconds (cumulative count 4999993)
      100.000% <= 2.071 milliseconds (cumulative count 4999996)
      100.000% <= 2.111 milliseconds (cumulative count 4999998)
      100.000% <= 2.119 milliseconds (cumulative count 4999999)
      100.000% <= 2.143 milliseconds (cumulative count 5000000)
      100.000% <= 2.143 milliseconds (cumulative count 5000000)
      
      Cumulative distribution of latencies:
      0.028% <= 0.103 milliseconds (cumulative count 1377)
      0.985% <= 0.207 milliseconds (cumulative count 49228)
      60.094% <= 0.303 milliseconds (cumulative count 3004705)
      96.325% <= 0.407 milliseconds (cumulative count 4816230)
      99.938% <= 0.503 milliseconds (cumulative count 4996887)
      99.991% <= 0.607 milliseconds (cumulative count 4999546)
      99.999% <= 0.703 milliseconds (cumulative count 4999927)
      100.000% <= 0.807 milliseconds (cumulative count 4999982)
      100.000% <= 0.903 milliseconds (cumulative count 4999987)
      100.000% <= 1.903 milliseconds (cumulative count 4999990)
      100.000% <= 2.007 milliseconds (cumulative count 4999995)
      100.000% <= 2.103 milliseconds (cumulative count 4999997)
      100.000% <= 3.103 milliseconds (cumulative count 5000000)
      
      Summary:
        throughput summary: 332955.97 requests per second
        latency summary (msec):
                avg       min       p50       p95       p99       max
              0.292     0.048     0.287     0.399     0.447     2.143

      O resumo mostra aproximadamente 330.000 requisições/segundo. Para detalhes das métricas, consulte Métricas comuns nos resultados de benchmark do redis-benchmark.