Todos os produtos
Search
Central de documentação

Elastic Compute Service:Deploying SMC-R and Redis over eRDMA

Última atualização: Sep 22, 2026

O Elastic RDMA (eRDMA) oferece latência ultrabaixa para acelerar o processamento de solicitações. Este tópico descreve como implantar o Shared Memory Communications (SMC) e o Redis com eRDMA e, em seguida, avaliar seu desempenho.

Informações de contexto

  • O Shared Memory Communications (SMC) é uma pilha de protocolos de alto desempenho no espaço do kernel que usa memória compartilhada e é compatível com a camada de soquetes. O SMC tem duas versões, de acordo com a tecnologia de memória compartilhada usada: SMC over DMA (SMC-D), baseado na memória compartilhada interna (ISM), e o SMC over RDMA (SMC-R), baseado no acesso remoto direto à memória (RDMA). Para obter mais informações, consulte SMC applicability.

  • O Alibaba Cloud Linux 3 usa o Elastic RDMA (eRDMA) para fornecer a aceleração do SMC-R. Para usar o SMC-R no Alibaba Cloud, é necessário criar instâncias do ECS compatíveis com eRDMA.

Pré-requisitos

Crie duas instâncias do ECS compatíveis com eRDMA. Durante a criação das instâncias, selecione a opção para instalar automaticamente o driver de eRDMA e ativar a interface de eRDMA na ENI primária. Uma instância do ECS servirá como servidor e a outra como cliente. Para obter mais informações, consulte Create an instance by using the wizard.

Este tópico utiliza os seguintes parâmetros como exemplo:

  • Tipo de instância: ecs.g8i.8xlarge

  • Imagem: Alibaba Cloud Linux 3.2104 LTS 64 bits

  • Rede: ambas as instâncias estão no mesmo grupo de segurança e podem se comunicar pela rede interna por padrão.

  • Endereços IP privados das ENIs primárias: 192.168.0.25 (servidor) e 192.168.0.24 (cliente). Substitua os endereços IP de exemplo pelos seus.

    Nota
    • Este tópico usa um exemplo no qual a interface de eRDMA está ativada na ENI primária de uma instância. Nesse caso, 192.168.0.25 é o endereço IP privado da ENI primária da instância do servidor.

    • Se ativar a interface de eRDMA em uma interface de rede elástica secundária para o teste, substitua esse endereço IP pelo endereço IP privado dessa ENI secundária. Para obter mais informações, consulte Step 3: Bind an ERI to an ECS instance.

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

Atente-se aos seguintes parâmetros ao criar as instâncias. Para os demais parâmetros, consulte Custom launch ECS instances.

  • Instances & Images: Selecione um tipo de instância compatível com eRDMA e instale o driver de eRDMA.

    • Instance: Consulte Limitations.

    • Images: Selecione Public Image e, em seguida, selecione Install eRDMA Driver. O driver de eRDMA é instalado automaticamente ao iniciar a instância.

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

    Nota

    Ao criar uma instância de nível empresarial, só é possível ativar o recurso ERI 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 chame uma operação de API. Para obter mais informações, consulte Elastic RDMA network interface (ERI).

Etapa 1: Implantar o SMC

  1. Conecte-se remotamente às instâncias do ECS do servidor e do cliente.

    Para obter mais informações, consulte Connect to a Linux instance by using Workbench.

  2. Em ambas as instâncias do ECS, execute o comando a seguir para implantar o módulo SMC-R:

    modprobe smc && modinfo smc
  3. Em ambas as instâncias, execute o comando a seguir para desativar o IPv6 e permitir o estabelecimento de conexões eRDMA pela interface de eRDMA.

    Importante
    • Os dispositivos eRDMA do Alibaba Cloud e o SMC atualmente não oferecem suporte a endereços IPv6. Se sua aplicação usar um endereço IPv6, o SMC fará fallback para TCP. Para obter mais informações, consulte SMC falls back to TCP with IPv6 addresses.

    • A partir do ANCK 5.10.134-17.3, o SMC oferece suporte a endereços IPv4-mapped IPv6.

    sysctl net.ipv6.conf.all.disable_ipv6=1
  4. Em ambas as instâncias, execute o comando a seguir para habilitar o SMC para eRDMA e priorizar o tráfego por eRDMA.

    Os soquetes TCP recém-criados são convertidos em soquetes SMC. Os soquetes TCP existentes não são afetados.

    sysctl net.smc.tcp2smc=1
  5. Em ambas as instâncias, execute o comando a seguir para instalar o smc-tools, o kit de ferramentas de monitoramento e diagnóstico do SMC.

    O smc-tools é um kit de ferramentas desenvolvido pela IBM para monitorar e diagnosticar o SMC-R. Ele oferece ferramentas completas de diagnóstico e rastreamento para o SMC-R, incluindo:

    • smcr: fornece estatísticas sobre os recursos do SMC-R.

    • smcss: fornece informações sobre os soquetes SMC.

    yum install -y smc-tools

    Após concluir a instalação, execute o comando smcss -a para visualizar o caminho atual do tráfego.

    [root@iZxxx]# smcss -a
    State          UID   Inode  Local Address            Peer Address              Intf Mode
    ACTIVE      00000 4257589 192.168.8.123:45058      192.168.8.126:20003       0000 SMCR
    ACTIVE      00000 4264206 192.168.8.123:20004      192.168.8.130:54626       0000 SMCR
    ACTIVE      00000 4264207 192.168.8.123:20004      192.168.8.136:54900       0000 SMCR
    ACTIVE      00000 4308684 192.168.8.123:20004      192.168.8.134:38578       0000 SMCR
    ACTIVE      00000 4308694 192.168.8.123:20004      192.168.8.126:60554       0000 SMCR
    ACTIVE      00000 4308692 192.168.8.123:20004      192.168.8.126:60568       0000 SMCR
    ACTIVE      00000 4261731 192.168.8.123:49490      192.168.8.122:20004       0000 SMCR
    ACTIVE      00000 4257634 192.168.8.123:49500      192.168.8.122:20004       0000 SMCR
    ACTIVE      00000 4257638 192.168.8.123:42866      192.168.8.129:20003       0000 SMCR
    ACTIVE      00000 4264236 192.168.8.123:53768      192.168.8.135:20003       0000 SMCR
    ACTIVE      00000 4272479 192.168.8.123:34978      192.168.8.128:20003       0000 SMCR
    ACTIVE      00000 4277256 192.168.8.123:42840      192.168.8.127:20003       0000 SMCR
    LISTEN      00000 4253132 0.0.0.0:38567

Etapa 2: Implantar o Redis

Após implantar o SMC nas instâncias do ECS, implante o Redis.

  1. Conecte-se remotamente às instâncias do ECS do servidor e do cliente.

    Para obter mais informações, consulte Connect to a Linux instance by using Workbench.

  2. Execute o comando a seguir para instalar o Redis em ambas as instâncias:

    sudo yum install -y redis
  3. Na instância do servidor, execute o comando a seguir para iniciar o servidor Redis:

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

    No comando, 192.168.0.25 é o endereço IP privado da ENI primária do servidor, e 6379 é a porta de escuta. Substitua esses valores pelos seus.

    [root@xxx Z ~]# redis-server --bind 192.168.0.25 --port 6379 --protected-mode no --save
    69313:C 23 Apr 2025 15:14:05.302 # o000o000o000o Redis is starting o000o000o000o
    69313:C 23 Apr 2025 15:14:05.302 # Redis version=6.2.17, bits=64, commit=00000000, modified=0, pid=69313, just started
    69313:C 23 Apr 2025 15:14:05.302 # Configuration loaded
    69313:M 23 Apr 2025 15:14:05.302 * monotonic clock: POSIX clock_gettime
                    Redis 6.2.17 (00000000/0) 64 bit
      Running in standalone mode
      Port: 6379
      PID: 69313
                    https://redis.io
    69313:M 23 Apr 2025 15:14:05.303 # Server initialized
    69313:M 23 Apr 2025 15:14:05.303 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
    69313:M 23 Apr 2025 15:14:05.303 * Ready to accept connections
  4. No cliente Redis, conecte-se ao servidor e execute um teste.

    • Execute o comando a seguir para se conectar ao servidor Redis:

      redis-cli -h 192.168.0.25 -p 6379
    • Execute o comando a seguir para iniciar um teste de estresse com o redis-benchmark.

      O comando a seguir simula 100 clientes enviando 1.000.000 de solicitações SET para o servidor:

      redis-benchmark -h 192.168.0.25 -p 6379 -n 1000000 -t set -c 100

Para um teste de estresse com carga de trabalho mista, execute vários processos após ativar o SMC-R. Primeiro, implante um segundo cliente Redis seguindo as etapas anteriores. Em seguida, inicie os testes de estresse em ambos os clientes e monitore as operações por segundo (OPS) no servidor Redis.

  • Exemplo de comando para iniciar oito processos de teste de estresse SET em um cliente Redis:

    redis-benchmark -h 192.168.0.25 -p 6379 -n 100000000 -t set --threads 8 -c 100
  • Exemplo de comando para iniciar oito processos de teste de estresse GET em um cliente Redis:

    redis-benchmark -h 192.168.0.25 -p 6379 -n 1000000 -t get --threads 8 -c 100
  • Exemplo de comando para verificar as OPS no servidor Redis:

    redis-cli -h 192.168.0.25 -p 6379 info | grep instantaneous_ops_per_sec
    Nota

    Execute o comando em uma nova janela de conexão remota.