Após a implantação de um circuito do Express Connect, teste o desempenho da rede para garantir que ele atenda aos requisitos do seu negócio. Este tópico descreve como testar o desempenho de um circuito do Express Connect com Netperf e iPerf3.
Pré-requisitos
-
Um circuito do Express Connect está implantado e configurado. Seu data center local está conectado à Alibaba Cloud por meio desse circuito.
-
Prepare um dispositivo local para atuar como cliente ou servidor no teste com Netperf ou iPerf3.
Neste exemplo, o endereço IP do dispositivo local é 192.168.100.1.
-
Crie oito instâncias do Elastic Compute Service (ECS) em Virtual Private Clouds (VPCs). Essas instâncias atuam como clientes ou servidores nos testes com Netperf ou iPerf3 e conectam-se ao dispositivo local para transmitir informações de configuração e resultados.
Neste exemplo, foram criadas instâncias ECS do tipo ecs.se1.2xlarge. A imagem utilizada é centos_7_2_64_40G_base_20170222.vhd e o intervalo de endereços IP vai de 172.16.0.2 a 172.16.0.9.
Configure o ambiente de teste
Instale Netperf e iPerf3
Para instalar o Netperf e o iPerf3 no dispositivo local e nas instâncias ECS, execute as operações a seguir:
As operações abaixo demonstram como instalar o Netperf e o iPerf3 em uma instância ECS.
Faça login na instância ECS. Para mais informações, consulte Escolha a connection method.
-
Instale o Netperf.
-
Execute o comando a seguir para baixe o pacote de instalação do Netperf:
wget -c "https://codeload.github.com/HewlettPackard/netperf/tar.gz/netperf-2.5.0" -O netperf-2.5.0.tar.gz -
Execute os comandos a seguir, em sequência, para instalar o Netperf:
tar -zxvf netperf-2.5.0.tar.gz cd netperf-netperf-2.5.0 ./configure make make install -
Execute
netperf -Vounetserver -Vpara verificar se o Netperf foi instalado corretamente.Se o sistema retornar as informações a seguir, o Netperf está instalado:
Netperf version 2.5.0
-
-
Instale o iPerf3.
-
Execute os comandos a seguir para baixe o iPerf3:
yum install git -y git clone https://github.com/esnet/iperf -
Execute os comandos a seguir para instalar o iPerf3:
cd iperf ./configure && make && make install && cd .. cd src ADD_PATH="$(pwd)" PATH="${ADD_PATH}:${PATH}" export PATH -
Execute o comando
iperf3 -vpara verificar se o iPerf3 foi instalado corretamente.Se o sistema retornar as informações a seguir, o iPerf3 está instalado:
iperf 3.10.1+ (cJSON 1.7.13) Linux iZbp15y0zrhx2ry6vo1b4wZ 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64
-
Ative o recurso de fila múltipla
Supondo que a interface eth0 esteja conectada ao circuito do Express Connect, execute o comando ethtool -L eth0 combined 4 no dispositivo local para ativar o recurso de fila múltipla.
Neste exemplo, as seguintes informações são retornadas:
echo "ff" > /sys/class/net/eth0/queues/rx-0/rps_cpus
echo "ff" > /sys/class/net/eth0/queues/rx-1/rps_cpus
echo "ff" > /sys/class/net/eth0/queues/rx-2/rps_cpus
echo "ff" > /sys/class/net/eth0/queues/rx-3/rps_cpus
Usar o Netperf para testar o desempenho de encaminhamento de pacotes do circuito do Express Connect
Visão geral do Netperf
Após a instalação do Netperf, duas ferramentas de interface de linha de comando (CLI) ficam disponíveis: netserver (servidor) e netperf (cliente). A tabela a seguir descreve os principais parâmetros.
| Ferramenta | Parâmetro principal | Descrição |
| netserver | -p | Número da porta do listener. |
| netperf | -H | Endereço IP do dispositivo local ou da instância ECS. |
| -p | Porta do dispositivo local ou da instância ECS. | |
| -l | Tempo de execução da ferramenta. | |
| -t | Protocolo utilizado para enviar pacotes. Valores válidos: TCP_STREAM e UDP_STREAM. Recomendamos o uso de UDP_STREAM. | |
| -m | Tamanho dos pacotes de dados.
|
Testar o desempenho de encaminhamento de pacotes com o dispositivo local como servidor
-
Execute os comandos a seguir para iniciar o processo netserver no dispositivo local, especificando portas diferentes:
netserver -p 11256 netserver -p 11257 netserver -p 11258 netserver -p 11259 netserver -p 11260 netserver -p 11261 netserver -p 11262 netserver -p 11263 -
Execute o comando
netperf -H server_ip -p port 6 -t UDP_STREAM -l 300 -- -m 1nas oito instâncias ECS para iniciar o processo netperf, definindo as portas do netserver como as portas das instâncias ECS.-
Execute os comandos a seguir para testar PPS:
netperf -H 192.168.100.1 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #The first ECS instance netperf -H 192.168.100.1 -p 11257 -t UDP_STREAM -l 300 -- -m 1 #The second ECS instance netperf -H 192.168.100.1 -p 11258 -t UDP_STREAM -l 300 -- -m 1 #The third ECS instance netperf -H 192.168.100.1 -p 11259 -t UDP_STREAM -l 300 -- -m 1 #The fourth ECS instance netperf -H 192.168.100.1 -p 11260 -t UDP_STREAM -l 300 -- -m 1 #The fifth ECS instance netperf -H 192.168.100.1 -p 11261 -t UDP_STREAM -l 300 -- -m 1 #The sixth ECS instance netperf -H 192.168.100.1 -p 11262 -t UDP_STREAM -l 300 -- -m 1 #The seventh ECS instance netperf -H 192.168.100.1 -p 11263 -t UDP_STREAM -l 300 -- -m 1 #The eighth ECS instance -
Execute os comandos a seguir para testar BPS:
netperf -H 192.168.100.1 -p 11256 -t UDP_STREAM -l 300 -- -m 1400 #The first ECS instance netperf -H 192.168.100.1 -p 11257 -t UDP_STREAM -l 300 -- -m 1400 #The second ECS instance netperf -H 192.168.100.1 -p 11258 -t UDP_STREAM -l 300 -- -m 1400 #The third ECS instance netperf -H 192.168.100.1 -p 11259 -t UDP_STREAM -l 300 -- -m 1400 #The fourth ECS instance netperf -H 192.168.100.1 -p 11260 -t UDP_STREAM -l 300 -- -m 1400 #The fifth ECS instance netperf -H 192.168.100.1 -p 11261 -t UDP_STREAM -l 300 -- -m 1400 #The sixth ECS instance netperf -H 192.168.100.1 -p 11262 -t UDP_STREAM -l 300 -- -m 1400 #The seventh ECS instance netperf -H 192.168.100.1 -p 11263 -t UDP_STREAM -l 300 -- -m 1400 #The eighth ECS instance
-
Testar o desempenho de encaminhamento de pacotes com o dispositivo local como cliente
Execute o comando
netserver -p 11256nas instâncias ECS para iniciar o processo netserver e especificar as portas.-
Execute o comando
netperf -H ECS_ip -p port -t UDP_STREAM -l 300 -- -m 1no dispositivo local para iniciar oito processos netperf, especificando endereços IP diferentes para as instâncias ECS.-
Execute os comandos a seguir para testar PPS:
netperf -H 172.16.0.2 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #The first ECS instance netperf -H 172.16.0.3 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #The second ECS instance netperf -H 172.16.0.4 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #The third ECS instance netperf -H 172.16.0.5 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #The fourth ECS instance netperf -H 172.16.0.6 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #The fifth ECS instance netperf -H 172.16.0.7 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #The sixth ECS instance netperf -H 172.16.0.8 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #The seventh ECS instance netperf -H 172.16.0.9 -p 11256 -t UDP_STREAM -l 300 -- -m 1 #The eighth ECS instance -
Execute os comandos a seguir para testar BPS:
netperf -H 172.16.0.2 -p 11256 -t UDP_STREAM -l 300 -- -m 1400 #The first ECS instance netperf -H 172.16.0.3 -p 11257 -t UDP_STREAM -l 300 -- -m 1400 #The second ECS instance netperf -H 172.16.0.4 -p 11258 -t UDP_STREAM -l 300 -- -m 1400 #The third ECS instance netperf -H 172.16.0.5 -p 11259 -t UDP_STREAM -l 300 -- -m 1400 #The fourth ECS instance netperf -H 172.16.0.6 -p 11260 -t UDP_STREAM -l 300 -- -m 1400 #The fifth ECS instance netperf -H 172.16.0.7 -p 11261 -t UDP_STREAM -l 300 -- -m 1400 #The sixth ECS instance netperf -H 172.16.0.8 -p 11262 -t UDP_STREAM -l 300 -- -m 1400 #The seventh ECS instance netperf -H 172.16.0.9 -p 11263 -t UDP_STREAM -l 300 -- -m 1400 #The eighth ECS instance
-
Analisar o resultado do teste
O resultado a seguir é exibido quando os processos netperf são concluídos no lado do cliente. Utilize a seguinte fórmula para calcular o PPS: PPS = Número de pacotes enviados / Duração do teste.
Socket Message Elapsed Messages
Size Size Time Okay Errors Throughput
bytes bytes secs # # 10^6bits/sec
124928 1 10.00 4532554 0 3.63
212992 10.00 1099999 0.88
A tabela a seguir descreve os campos presentes no resultado do teste.
|
Campo |
Descrição |
|
Socket Size |
Tamanho do buffer. |
|
Message Size |
Tamanho do pacote. Unidade: bytes. |
|
Elapsed Time |
Duração do teste. Unidade: segundos. |
|
Message Okay |
Quantidade de pacotes enviados com sucesso. |
|
Message Errors |
Quantidade de pacotes com falha no envio. |
|
Throughput |
Taxa de transferência da rede. Unidade: Mbit/s. |
Usar o iPerf3 para testar a largura de banda do circuito do Express Connect
Visão geral do iPerf3
A tabela a seguir descreve os principais parâmetros do iPerf3.
| Parâmetro principal | Descrição |
| -s | Aplicável apenas ao servidor. Define que o iPerf3 será executado no modo servidor. |
| -c | Aplicável apenas ao cliente. Define que o iPerf3 será executado no modo cliente. |
| -i | Define o intervalo entre dois relatórios. Unidade: segundos. |
| -p |
|
| -u | Utiliza UDP para enviar pacotes. Se este parâmetro não for definido, o TCP será usado. |
| -l | Define o tamanho do buffer de leitura/gravação. Recomenda-se definir o valor como 16 ao testar o desempenho de encaminhamento de pacotes. Para testes de largura de banda, recomenda-se o valor 1400. |
| -b | Define a largura de banda utilizada no modo UDP. Unidade: bit/s. |
| -t | Define a duração da transmissão. O iPerf3 envia repetidamente pacotes do tamanho especificado durante o período definido. A duração padrão é de 10 segundos. |
| -A | Afinidade de CPU. Permite vincular um processo do iPerf3 a uma CPU lógica específica pelo ID correspondente, evitando que o processo seja escalonado entre diferentes CPUs. |
Testar a largura de banda com o dispositivo local como servidor
-
Execute os comandos a seguir no dispositivo local para iniciar o processo iPerf3 no modo servidor, especificando portas diferentes:
iperf3 -s -i 1 -p 16001 iperf3 -s -i 1 -p 16002 iperf3 -s -i 1 -p 16003 iperf3 -s -i 1 -p 16004 iperf3 -s -i 1 -p 16005 iperf3 -s -i 1 -p 16006 iperf3 -s -i 1 -p 16007 iperf3 -s -i 1 -p 16008 -
Execute o comando
iperf3 -u -l 16 -b 100m -t 120 -c server_ip -i 1 -p port -A 1nas instâncias ECS para iniciar o processo iPerf3 no modo cliente, definindo as portas do dispositivo local como as portas das instâncias ECS.Execute os comandos a seguir:
iperf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16001 -A 1 #The first ECS instance iperf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16002 -A 2 #The second ECS instance iperf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16003 -A 3 #The third ECS instance iperf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16004 -A 4 #The fourth ECS instance iperf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16005 -A 5 #The fifth ECS instance iperf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16006 -A 6 #The sixth ECS instance iperf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16007 -A 7 #The seventh ECS instance iperf3 -u -l 16 -b 100m -t 120 -c 192.168.100.1 -i 1 -p 16008 -A 8 #The eighth ECS instance
Testar a largura de banda com o dispositivo local como cliente
Execute o comando
iperf3 -s -i 1 -p 16001nas instâncias ECS para iniciar o processo iPerf3 no modo servidor e especificar as portas.-
Execute os comandos a seguir no dispositivo local para iniciar oito processos iPerf3 no modo cliente:
iperf3 -u -l 16 -b 100m -t 120 -c 172.16.0.2 -i 1 -p 16001 -A 1 iperf3 -u -l 16 -b 100m -t 120 -c 172.16.0.3 -i 1 -p 16001 -A 2 iperf3 -u -l 16 -b 100m -t 120 -c 172.16.0.4 -i 1 -p 16001 -A 3 iperf3 -u -l 16 -b 100m -t 120 -c 172.16.0.5 -i 1 -p 16001 -A 4 iperf3 -u -l 16 -b 100m -t 120 -c 172.16.0.6 -i 1 -p 16001 -A 5 iperf3 -u -l 16 -b 100m -t 120 -c 172.16.0.7 -i 1 -p 16001 -A 6 iperf3 -u -l 16 -b 100m -t 120 -c 172.16.0.8 -i 1 -p 16001 -A 7 iperf3 -u -l 16 -b 100m -t 120 -c 172.16.0.9 -i 1 -p 16001 -A 8
Analisar o resultado do teste
O resultado a seguir é exibido quando os processos iPerf3 são concluídos no lado do cliente. Utilize a seguinte fórmula para calcular o PPS: PPS = Número de pacotes recebidos pelo destino / Duração do teste.
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-10.00 sec 237 MBytes 199 Mbits/sec 0.027 ms 500/30352 (1.6%)
[ 4] Sent 30352 datagrams
Recomendamos executar o comando
sar
no lado do servidor para contabilizar os pacotes efetivamente recebidos. Exemplo:
sar -n DEV 1 320
.
A tabela a seguir descreve os campos presentes no resultado do teste.
|
Campo |
Descrição |
|
Transfer |
Volume total de dados transmitidos. |
|
Bandwidth |
Largura de banda alcançada. |
|
Jitter |
Variação de latência da rede. |
|
Lost/Total Datagrams |
Taxa de perda de pacotes, calculada pela fórmula: Taxa de perda = Número de pacotes descartados / Número total de pacotes. |