Todos os produtos
Search
Central de documentação

Elastic Compute Service:Testar o desempenho de rede da instância

Última atualização: Jul 03, 2026

Use o Netperf e o sockperf para testar a taxa de encaminhamento de pacotes (PPS), a largura de banda e a latência de rede das instâncias ECS.

Importante
  • Para evitar perda de dados, teste o desempenho de rede em novas instâncias ECS sem dados.

  • As métricas dos tipos de instância são verificadas em ambiente de teste. O desempenho real pode variar conforme fatores como carga da instância e modelo de rede.

Pré-requisitos

Preparações

  • Crie instâncias ECS para os testes. Consulte Iniciar instâncias ECS personalizadas.

    Importante

    Use instâncias do mesmo tipo para garantir resultados precisos e comparáveis.

  • Certifique-se de que todas as instâncias de teste estejam na mesma Virtual Private Cloud (VPC), conectadas ao mesmo vSwitch e no mesmo grupo de segurança.

Ambientes de exemplo

As tabelas a seguir listam os tipos e as quantidades recomendados de instâncias para máquinas de teste e máquinas auxiliares. Selecione as máquinas como servidores ou clientes conforme o cenário de teste.

  • Testar a taxa de encaminhamento de pacotes (apenas instâncias Linux)

    Nota

    Não há ferramentas disponíveis para testar a taxa de encaminhamento de pacotes de instâncias Windows.

    Taxa de encaminhamento de pacotes inferior a 6.000.000 pps

    Item de teste

    Máquina de teste

    Máquina auxiliar de teste

    Tipo de instância

    ecs.g7.large

    ecs.g7.large

    Imagem

    Alibaba Cloud Linux 3

    Alibaba Cloud Linux 3

    Número de instâncias

    1

    1

    Rede

    Endereços IP públicos atribuídos.

    Taxa de encaminhamento de pacotes superior a 6.000.000 pps e inferior a 20.000.000 pps

    Item de teste

    Máquina de teste

    Máquina auxiliar de teste

    Tipo de instância

    ecs.g7.16xlarge

    ecs.g7.16xlarge

    Imagem

    Alibaba Cloud Linux 3

    Alibaba Cloud Linux 3

    Número de instâncias

    1

    3

    Rede

    Endereços IP públicos atribuídos.

    Taxa de encaminhamento de pacotes superior a 20.000.000 pps

    Item de teste

    Máquina de teste

    Máquina auxiliar de teste

    Tipo de instância

    ecs.g7.32xlarge

    ecs.g7.32xlarge

    Imagem

    Alibaba Cloud Linux 3

    Alibaba Cloud Linux 3

    Número de instâncias

    1

    3

    Rede

    Endereços IP públicos atribuídos.

  • Testar largura de banda e latência de rede

    Instância Linux

    Item de teste

    Máquina de teste

    Máquina auxiliar de teste

    Tipo de instância

    ecs.g7.large

    ecs.g7.large

    Imagem

    Alibaba Cloud Linux 3

    Alibaba Cloud Linux 3

    Número de instâncias

    1

    1

    Rede

    Endereços IP públicos atribuídos.

    Instância Windows

    Item de teste

    Máquina de teste

    Máquina auxiliar de teste

    Tipo de instância

    ecs.g7.large

    ecs.g7.large

    Imagem

    Windows Server 2022

    Windows Server 2022

    Número de instâncias

    1

    1

    Rede

    Endereços IP públicos atribuídos.

Procedimento

Testar a taxa de encaminhamento de pacotes (apenas Linux)

Nota

Não há ferramentas disponíveis para testar a taxa de encaminhamento de pacotes em instâncias Windows.

Taxa de encaminhamento de pacotes inferior a 6.000.000 pps

  1. Conecte-se à máquina de teste e às máquinas auxiliares. Consulte Fazer login em uma instância Linux usando o Workbench.

  2. Baixe o pacote de instalação do Netperf em ambas as máquinas:

    wget https://benchmark-packages.oss-cn-qingdao.aliyuncs.com/netperf-2.7.0.tar.gz
  3. Instale o Netperf e o sar em ambas as máquinas.

    1. Descompacte o pacote de instalação do Netperf:

      sudo yum install -y gcc autoconf automake libtool sysstat
      tar -zxvf netperf-2.7.0.tar.gz
    2. Verifique a versão do GNU Compiler Collection (GCC).

      gcc -v 2>&1
    3. Se o GCC for posterior à versão V10 em qualquer máquina, execute as operações a seguir para garantir a compilação correta. Caso contrário, ignore esta etapa.

      1. Abra o arquivo nettest_omni.c.

        cd netperf
        vim src/nettest_omni.c
      2. Pressione i para entrar no modo de inserção e exclua as seguintes variáveis declaradas de nettest_omni.c:

        /* different options for the sockets        */
        
        int
          loc_nodelay,    /* don't/do use NODELAY  locally    */
          rem_nodelay,    /* don't/do use NODELAY remotely  */
          loc_sndavoid,    /* avoid send copies locally    */
          loc_rcvavoid,    /* avoid recv copies locally    */
          rem_sndavoid,    /* avoid send copies remotely    */
          rem_rcvavoid;   /* avoid recv_copies remotely    */
      3. Pressione Esc, insira :wq e pressione Enter para salvar e fechar o arquivo.

    4. Instale o Netperf e o sar.

      cd netperf
      sudo ./configure
      sudo make && sudo make install
  4. Inicie 64 serviços netserver na máquina de teste:

    #!/bin/bash
    for j in `seq 64`; do
        netserver -p $[16000+j] > server_$[16000+j].netperf > /dev/null 2>&1  &
    done
  5. Obtenha o endereço IP privado da máquina de teste:

    ifconfig || ip addr

    image.png

  6. Envie tráfego para a máquina de teste a partir da máquina auxiliar:

    #!/bin/bash
    server_ip=<Private IP address of the test machine>
    for j in `seq 64`; do
        port=$[16000+j]
        netperf -H ${server_ip} -l ${run_time:-300} -t UDP_STREAM  -p $port  -- -m 1 -D > /dev/null 2>&1 &
    done

    Substitua <Private IP address of the test machine> pelo endereço IP privado real obtido na etapa anterior.

    image.png

  7. Teste a taxa de encaminhamento de pacotes na máquina de teste:

    sar -n DEV 1

    Verifique a coluna rxpck/s. O valor de rxpck/s indica os pacotes recebidos por segundo. Neste exemplo, o valor é aproximadamente 940.000.

    image.png

Taxa de encaminhamento de pacotes superior a 6.000.000 pps e inferior a 20.000.000 pps

  1. Conecte-se à máquina de teste e às máquinas auxiliares. Consulte Fazer login em uma instância Linux usando o Workbench.

  2. Instale o sockperf nas quatro máquinas (três auxiliares e uma de teste):

    sudo yum install -y autoconf automake libtool gcc-c++
    cd /opt
    sudo wget https://github.com/Mellanox/sockperf/archive/refs/tags/3.8.tar.gz
    sudo tar -zxf 3.8.tar.gz
    cd sockperf-3.8/
    sudo ./autogen.sh
    sudo ./configure
    sudo make -j `cat /proc/cpuinfo| grep process | wc -l`
    sudo make install
  3. Obtenha o endereço IP privado da máquina de teste:

    ifconfig || ip addr

    image.png

  4. Envie tráfego para a máquina de teste a partir de cada máquina auxiliar:

    server_ip="<Private IP address of the test machine>"
    threads=64
    msg_size=14
    run_time=60
    
    basePort=6666
    for((i=0;i<$threads;++i));do
        nohup sockperf tp -i $server_ip --pps max -m ${msg_size} -t ${run_time} --port $[${basePort}+${i}] 2>&1 &
    done

    Substitua <Private IP address of the test machine> pelo valor real. run_time especifica a duração do tráfego.

  5. Teste a taxa de encaminhamento de pacotes nas quatro máquinas:

    sar -n DEV 1

    Verifique a coluna rxpck/s na máquina de teste. O valor de rxpck/s indica os pacotes recebidos por segundo. Neste exemplo, o valor é aproximadamente 12.000.000 pps.Received packets

Taxa de encaminhamento de pacotes superior a 20.000.000 pps

  1. Conecte-se à máquina de teste e às máquinas auxiliares. Consulte Fazer login em uma instância Linux usando o Workbench.

  2. Instale o sockperf nas quatro máquinas (três auxiliares e uma de teste):

    sudo yum install -y autoconf automake libtool gcc-c++
    cd /opt
    sudo wget https://github.com/Mellanox/sockperf/archive/refs/tags/3.8.tar.gz
    sudo tar -zxf 3.8.tar.gz
    cd sockperf-3.8/
    sudo ./autogen.sh
    sudo ./configure
    sudo make -j `cat /proc/cpuinfo| grep process | wc -l`
    sudo make install
  3. Vincule solicitações de interrupção (IRQs) aos núcleos da CPU na máquina de teste.

    Vincular IRQs a núcleos específicos da CPU reduz a troca de contexto e melhora a eficiência do processamento de pacotes em altas taxas de PPS.

    a=$(cat /proc/interrupts | grep virtio2-input | awk -F ':' '{print $1}')
    cpu=0
    for irq in $a; do
        echo $cpu >/proc/irq/$irq/smp_affinity_list
        let cpu+=2
    done
  4. Obtenha o endereço IP privado da máquina de teste:

    ifconfig || ip addr

    image.png

  5. Envie tráfego para a máquina de teste a partir de cada máquina auxiliar:

    server_ip="<Private IP address of the test machine>"
    threads=64
    msg_size=14
    run_time=60
    
    basePort=6666
    for((i=0;i<$threads;++i));do
        nohup sockperf tp -i $server_ip --pps max -m ${msg_size} -t ${run_time} --port $[${basePort}+${i}] 2>&1 &
    done

    Substitua <Private IP address of the test machine> pelo valor real. run_time especifica a duração do tráfego.

  6. Teste a taxa de encaminhamento de pacotes nas quatro máquinas:

    sar -n DEV 1

    Verifique a coluna rxpck/s na máquina de teste. O valor de rxpck/s indica os pacotes recebidos por segundo. Neste exemplo, o valor é aproximadamente 20.000.000 pps.24 million PPS

Testar a largura de banda de rede

Instância Linux

  1. Conecte-se à máquina de teste e à máquina auxiliar. Consulte Fazer login em uma instância Linux usando o Workbench.

  2. Baixe o pacote de instalação do Netperf em ambas as máquinas:

    wget https://benchmark-packages.oss-cn-qingdao.aliyuncs.com/netperf-2.7.0.tar.gz
  3. Instale o Netperf e o sar em ambas as máquinas.

    1. Descompacte o pacote de instalação do Netperf.

      sudo yum install -y gcc autoconf automake libtool sysstat
      tar -zxvf netperf-2.7.0.tar.gz
    2. Verifique a versão do GCC.

      gcc -v 2>&1
    3. Se o GCC for posterior à versão V10 em qualquer máquina, execute as operações a seguir para garantir a compilação correta. Caso contrário, ignore esta etapa.

      1. Abra o arquivo nettest_omni.c.

        cd netperf
        vim src/nettest_omni.c
      2. Pressione i para entrar no modo de inserção e exclua as seguintes variáveis declaradas de nettest_omni.c:

        /* different options for the sockets        */
        
        int
          loc_nodelay,    /* don't/do use NODELAY  locally    */
          rem_nodelay,    /* don't/do use NODELAY remotely  */
          loc_sndavoid,    /* avoid send copies locally    */
          loc_rcvavoid,    /* avoid recv copies locally    */
          rem_sndavoid,    /* avoid send copies remotely    */
          rem_rcvavoid;   /* avoid recv_copies remotely    */
      3. Pressione Esc, insira :wq e pressione Enter para salvar e fechar o arquivo.

    4. Instale o Netperf e o sar.

      cd netperf
      sudo ./configure
      sudo make && sudo make install
  4. Inicie 64 serviços netserver na máquina de teste:

    #!/bin/bash
    for j in `seq 64`; do
        netserver -p $[16000+j] > server_$[16000+j].netperf 2>&1 &
    done
  5. Obtenha o endereço IP privado da máquina de teste:

    ifconfig || ip addr

    image.png

  6. Envie tráfego para a máquina de teste a partir da máquina auxiliar:

    #!/bin/bash
    server_ip=<Private IP address of the test machine>
    for j in `seq 64`; do
        port=$[16000+j]
        netperf -H ${server_ip} -l ${run_time:-300} -t TCP_STREAM -p $port -- -D > /dev/null 2>&1 & 
    done

    Substitua <Private IP address of the test machine> pelo endereço IP privado real obtido na etapa anterior.

    image.png

  7. Teste a largura de banda de rede na máquina de teste:

    sar -n DEV 1

    Verifique a coluna rxkB/s. O valor de rxkB/s indica o tamanho dos pacotes recebidos em KB/s. Multiplique por 8 para converter para Kbit/s e obter a largura de banda de rede.

    image.png

Instância Windows

  1. Conecte-se à máquina de teste e à máquina auxiliar. Consulte Conectar-se a uma instância Windows usando senha ou chave.

  2. Instale as ferramentas de teste e desative o firewall em ambas as máquinas.

    1. Baixe a ferramenta ntttcp.exe e obtenha o caminho onde ela está armazenada.

    2. Abra a caixa de diálogo Executar. Insira powershell e clique em OK para iniciar o PowerShell.

    3. Desative o firewall em ambas as máquinas para evitar conexões bloqueadas:

      Set-NetFirewallProfile -Profile * -Enabled:false

      Como alternativa, crie uma regra de firewall de entrada que permita o NTTTCP (ntttcp.exe) em ambas as máquinas:

      $ntttcpPath = "<Path of ntttcp.exe>"
      New-NetFirewallRule -DisplayName ntttcp -Protocol Any -Direction Inbound -Action Allow -Enabled True -Profile Any -Program $ntttcpPath
      Nota

      Substitua <Path of ntttcp.exe> pelo valor real.

  3. Configure o Receive Side Scaling (RSS) para o adaptador de rede na máquina de teste.

    O RSS distribui os pacotes recebidos entre vários núcleos de CPU para melhorar o desempenho da rede. Defina as filas RSS com base na contagem de CPUs:

    • Se a máquina tiver até 16 núcleos de CPU, defina o número de filas de recepção RSS igual ao número de núcleos da CPU.

    • Se a máquina tiver mais de 16 núcleos de CPU, desative o RSS. A maioria dos adaptadores de rede suporta até 16 filas RSS; exceder esse limite pode causar alocação desigual de recursos.

    $cpuNum = (Get-CimInstance -ClassName Win32_Processor).NumberOfLogicalProcessors
    if ($cpuNum -le 16) {
      Set-NetAdapterRss -Name <Name of the network adapter on the test machine> -NumberOfReceiveQueues $cpuNum
    } else {
      Disable-NetAdapterRss -Name <Name of the network adapter on the test machine>
    }
    Nota
    • Substitua <Name of the network adapter on the test machine> pelo valor real. Execute Get-NetAdapter | Select-Object Name para obter os nomes dos adaptadores.

    • A modificação da configuração do RSS reinicia o serviço do adaptador de rede, o que pode interromper conexões. Aguarde a reconexão antes de prosseguir.

  4. Prepare a máquina de teste para receber dados:

    $serverIp = (Get-NetIPConfiguration -InterfaceAlias <Name of the network adapter on the test machine>).IPv4Address.IPAddress
    $cpuNum = (Get-CimInstance -ClassName Win32_Processor).NumberOfLogicalProcessors
    $threadNum = $cpuNum
    & <Path of ntttcp.exe on the test machine> -r -m $threadNum,0,$serverIp -t 300
    Nota

    Substitua <Name of the network adapter on the test machine> e <Path of ntttcp.exe on the test machine> pelos valores reais.

  5. Envie dados a partir da máquina auxiliar:

    $serverIp = "<Private IP address of the test machine>"
    $threadNum = "<Thread number of the test machine>"
    <Path of ntttcp.exe on the auxiliary test machine> -s -m $threadNum,*,$serverIp -t 100
    Nota

    Substitua <Private IP address of the test machine>, <Thread number of the test machine> e <Path of ntttcp.exe on the auxiliary test machine> pelos valores reais. Execute ipconfig para obter o endereço IP privado e $cpuNum para obter o número de threads.

  6. Visualize a largura de banda de rede na máquina de teste.

    O valor de Throughput(MB/s) indica a largura de banda de rede.

    image

Testar a latência de rede

Instância Linux

  1. Conecte-se à máquina de teste e à máquina auxiliar. Consulte Fazer login em uma instância Linux usando o Workbench.

  2. Instale o sockperf em ambas as máquinas:

    sudo yum install -y autoconf automake libtool gcc-c++
    cd /opt
    sudo wget https://github.com/Mellanox/sockperf/archive/refs/tags/3.8.tar.gz
    sudo tar -zxf 3.8.tar.gz
    cd sockperf-3.8/
    sudo ./autogen.sh
    sudo ./configure
    sudo make -j `cat /proc/cpuinfo| grep process | wc -l`
    sudo make install
  3. Obtenha o endereço IP privado da máquina de teste:

    ifconfig || ip addr

    image.png

  4. Inicie o sockperf na máquina de teste:

    sockperf sr --tcp --daemonize
  5. Envie tráfego para a máquina de teste a partir da máquina auxiliar:

    sockperf pp -i <Private IP address of the test machine> --tcp -t 30 -m 14 --full-log=result.json

    Substitua <Private IP address of the test machine> pelo valor real da etapa anterior.

  6. Visualize os resultados de latência de rede.

    Nos dados retornados:

    • avg-latency: latência média em microssegundos.

    • percentile 99.000: latência do percentil 99 em microssegundos.

    image.png

Instância Windows

  1. Conecte-se à máquina de teste e à máquina auxiliar. Consulte Conectar-se a uma instância Windows usando senha ou chave.

  2. Instale as ferramentas de teste e desative o firewall em ambas as máquinas.

    1. Baixe a ferramenta latte.exe e obtenha o caminho onde ela está armazenada.

    2. Abra a caixa de diálogo Executar. Insira powershell e clique em OK para iniciar o PowerShell.

    3. Desative o firewall em ambas as máquinas para evitar conexões bloqueadas:

      Set-NetFirewallProfile -Profile * -Enabled:false

      Como alternativa, crie uma regra de firewall de entrada que permita o Latte (latte.exe) em ambas as máquinas:

      $lattePath = "<Path of latte.exe>"
      New-NetFirewallRule -DisplayName Latte -Protocol Any -Direction Inbound -Action Allow -Enabled True -Profile Any -Program $lattePath
      Nota

      Substitua <Path of latte.exe> pelo valor real.

  3. Prepare a máquina de teste para receber dados:

    $serverIp = (Get-NetIPConfiguration | Where-Object {$_.InterfaceAlias -eq '<Name of the network adapter on the test machine>'} | Select-Object -ExpandProperty IPv4Address).IPAddress
    $port = <Communication port>
    & "<Path of latte.exe on the test machine>" -a "$serverIp`:$port" -i 65535
    Nota
    • Substitua <Name of the network adapter on the test machine> e <Path of latte.exe on the test machine> pelos valores reais. Execute Get-NetAdapter | Select-Object Name para obter os nomes dos adaptadores.

    • Especifique um número de porta para <Communication port>. Use a mesma porta em ambas as máquinas.

  4. Envie dados a partir da máquina auxiliar:

    $serverIp = "<Private IP address of the test machine>"
    $port = <Communication port>
    & "<Path of latte.exe on the auxiliary test machine>" -c -a "${serverIp}:$port" -i 65535
    Nota
    • Substitua <Private IP address of the test machine> e <Path of latte.exe on the auxiliary test machine> pelos valores reais. Execute ipconfig para obter o endereço IP privado.

    • Especifique um número de porta para <Communication port>. Use a mesma porta em ambas as máquinas.

  5. Visualize os resultados de latência de rede.

    O valor de Latency(usec) indica a latência média de rede em microssegundos.

    image