Como posso solucionar problemas de performance de rede do Direct Connect?

8 minuto de leitura
0

Estou enfrentando problemas de baixa taxa de transferência, latência de tráfego e performance com minha conexão do AWS Direct Connect.

Resolução

Siga estas instruções para isolar e diagnosticar problemas de performance de rede e aplicações.

Observação: é uma prática recomendada configurar uma máquina de teste dedicada on-premises e com uma Amazon Virtual Private Cloud (Amazon VPC). Use o tamanho de tipo de instância C5 ou maior do Elastic Compute Cloud (Amazon EC2).

Problema de rede ou aplicação

Você pode instalar e usar a ferramenta iPerf3 para comparar a largura de banda da rede e verificar os resultados com outras aplicações ou ferramentas.

1.    Instalação do Linux/REHEL:

$ sudo yum install iperf3 -y

Instalação do Ubuntu:

$ sudo apt install iperf3 -y

2.    Execute o iPerf3 no cliente e no servidor para medir a taxa de transferência bidirecionalmente de maneira semelhante à seguinte:

Instância do Amazon EC2 (servidor)

$ iperf3 -s -V

Localhost on-premises (cliente):

$ iperf3 -c <private IP of EC2> -P 15 -t 15
$ iperf3 -c <private IP of EC2> -P 15 -t 15 -R

$ iperf3 -c <private IP of EC2> -w 256K
$ iperf3 -c <private IP of EC2> -w 256K -R

$ iperf3 -c <private IP of EC2> -u -b 1G -t 15
$ iperf3 -c <private IP of EC2> -u -b 1G -t 15 -R 

----------------
-P, --parallel n
    number of parallel client threads to run; It is critical to run multi-threads to achieve the max throughput.
-R, --reverse
    reverse the direction of a test. So the EC2 server sends data to the on-prem client to measure AWS -> on-prem throughput.
-u, --udp
    use UDP rather than TCP. Since TCP iperf3 does not report loss, UDP tests are helpful to see the packet loss along a path.

Exemplo de resultados do teste de TCP:

[ ID] Interval          Transfer      Bitrate        Retry
[SUM] 0.00-15.00  sec  7.54 GBytes  4.32 Gbits/sec   18112   sender
[SUM] 0.00-15.00  sec  7.52 GBytes  4.31 Gbits/sec           receiver

Bitrate (Taxa de bits): a taxa de transferência medida ou a velocidade de transmissão.

Transfer (Transferência): a quantidade total de dados trocados entre cliente e servidor.

Retry (Repetição): o número de pacotes retransmitidos. A retransmissão é observada no lado do remetente.

Exemplo de resultados do teste de UDP:

[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5] 0.00-15.00  sec  8.22 GBytes   4.71 Gbits/sec  0.000 ms   0/986756 (0%)  sender
[  5] 0.00-15.00  sec  1.73 GBytes   989 Mbits/sec   0.106 ms   779454/986689 (79%)  receiver

A perda é 0% no lado do remetente porque a quantidade máxima de datagramas UDP foi enviada.

Os datagramas perdidos/totais no lado do receptor indicam que muitos pacotes foram perdidos e a taxa de perda. Neste exemplo, 79% do tráfego de rede foi perdido.

Observação: se a conexão do Direct Connect usar uma Amazon Virtual Private Network (Amazon VPN) em uma Public Virtual Interface (VIF – Interface virtual pública), execute testes de performance sem a VPN.

Verifique as métricas e os contadores de interface

Verifique o Amazon CloudWatch Logs para obter as seguintes métricas:

  • ConnectionErrorCount: aplique a estatística sum e observe que valores diferentes de zero indicam erros em nível de MAC no dispositivo da AWS.
  • ConnectionLightLevelTx e ConnectionLightLevelRx: certifique-se de que as leituras do sinal óptico estejam dentro da faixa de -14,4 e 2,50 dBm.
  • ConnectionBpsEgress, ConnectionBpsIngress, VirtualInterfaceBpsEgress e VirtualInterfaceBpsIngress: certifique-se de que a taxa de bits não tenha atingido a largura de banda máxima.

Para obter mais informações, consulte Métricas e dimensões do Direct Connect.

Se você estiver usando uma Hosted Virtual Interface (VIF hospedada) que compartilha a largura de banda total com outros usuários, verifique com o proprietário do Direct Connect sobre a utilização da conexão.

Verifique o roteador e o firewall no local do Direct Connect para obter o seguinte:

  • CPU, memória, utilização de portas, quedas, descartes.
  • Use “mostrar estatísticas de interfaces” ou similar para verificar erros de entrada e saída da interface, como CRC, quadro, colisões e operadora.
  • Limpe ou substitua o cabo de remendo de fibra e o módulo SFP para contadores desgastados.

Verifique o AWS Personal Health Dashboard para se certificar de que a conexão do Direct Connect não esteja em manutenção.

Execute o MTR bidirecionalmente para verificar o caminho da rede

Você pode usar o comando MTR do Linux para analisar a performance da rede. Para o sistema operacional Windows, é uma prática recomendada habilitar o WSL 2 para que você possa instalar o MTR em um subsistema Linux. Você pode baixar o WinMTR no site SourceForge.

1.    Instalação do Amazon Linux/REHEL:

$ sudo yum install mtr -y

Instalação do Ubuntu:

$ sudo apt install mtr -y

2.    Para a direção on-premises --> AWS, execute o MTR no localhost (baseado em ICMP e TCP):

$ mtr -n -c 100 <private IP of EC2> --report
$ mtr -n -T -P <EC2 instance open TCP port> -c 100 <private IP of EC2> --report

3.    Para a direção AWS --> on-premises, execute o MTR na instância do EC2 (com base em ICMP e TCP):

$ mtr -n -c 100 <private IP of the local host> --report
$ mtr -n -T -P <local host open TCP port> -c 100 <private IP of the local host> --report

Exemplo de resultados do teste MTR:

#ICMP based MTR results
$ mtr -n -c 100 192.168.52.10 --report
Start: Sat Oct 30 20:54:39 2021
HOST:                             Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 10.0.101.222               0.0%   100    0.7   0.7   0.6   0.9   0.0
  2.|-- ???                       100.0   100    0.0   0.0   0.0   0.0   0.0
  3.|-- 10.110.120.2               0.0%   100  266.5 267.4 266.4 321.0   4.8
  4.|-- 10.110.120.1              54.5%   100  357.6 383.0 353.4 423.7  19.6
  5.|-- 192.168.52.10             47.5%   100  359.4 381.3 352.4 427.9  20.6

#TCP based MTR results
$ mtr -n -T -P 80 -c 100 192.168.52.10 --report
Start: Sat Oct 30 21:03:48 2021
HOST:                             Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 10.0.101.222               0.0%   100    0.9   0.7   0.7   1.1   0.0
  2.|-- ???                       100.0   100    0.0   0.0   0.0   0.0   0.0
  3.|-- 10.110.120.2               0.0%   100  264.1 265.8 263.9 295.3   3.4
  4.|-- 10.110.120.1               8.0%   100  374.3 905.3 354.4 7428. 1210.6
  5.|-- 192.168.52.10             12.0%   100  400.9 1139. 400.4 7624. 1384.3

Cada linha em um salto representa um dispositivo de rede que o pacote de dados passa da origem para o destino. Para obter mais informações sobre como ler os resultados do teste MTR, consulte o site da ExaVault.

O exemplo a seguir mostra uma conexão do Direct Connect com o par BGP 10.110.120.1 e 10.110.120.2. A porcentagem de perda é observada no 4º e 5º salto de destino. Isso pode indicar um problema com a conexão do Direct Connect ou com o roteador remoto 10.110.120.1. O resultado do MTR do TCP mostra menos porcentagem de perda porque o TCP é priorizado sobre o ICMP com a conexão do Direct Connect.

#ICMP based MTR results
$ mtr -n -c 100 192.168.52.10 --report
Start: Sat Oct 30 20:54:39 2021
HOST:                             Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 10.0.101.222               0.0%   100    0.7   0.7   0.6   0.9   0.0
  2.|-- ???                       100.0   100    0.0   0.0   0.0   0.0   0.0
  3.|-- 10.110.120.2               0.0%   100  266.5 267.4 266.4 321.0   4.8
  4.|-- 10.110.120.1              54.5%   100  357.6 383.0 353.4 423.7  19.6
  5.|-- 192.168.52.10             47.5%   100  359.4 381.3 352.4 427.9  20.6

#TCP based MTR results
$ mtr -n -T -P 80 -c 100 192.168.52.10 --report
Start: Sat Oct 30 21:03:48 2021
HOST:                             Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 10.0.101.222               0.0%   100    0.9   0.7   0.7   1.1   0.0
  2.|-- ???                       100.0   100    0.0   0.0   0.0   0.0   0.0
  3.|-- 10.110.120.2               0.0%   100  264.1 265.8 263.9 295.3   3.4
  4.|-- 10.110.120.1               8.0%   100  374.3 905.3 354.4 7428. 1210.6
  5.|-- 192.168.52.10             12.0%   100  400.9 1139. 400.4 7624. 1384.3

O exemplo a seguir mostra o firewall local ou a perda de pacotes do dispositivo NAT em 5%. A perda de pacotes afeta todos os saltos subsequentes, incluindo o destino.

$ mtr -n -c 100 192.168.52.10 --report
Start: Sat Oct 30 21:11:22 2021
HOST:                              Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 10.0.101.222               5.0%   100    0.8   0.7   0.7   1.1   0.0
  2.|-- ???                       100.0   100    0.0   0.0   0.0   0.0   0.0
  3.|-- 10.110.120.2               6.0%   100  265.7 267.1 265.6 307.8   5.1
  4.|-- 10.110.120.1               6.0%   100  265.1 265.2 265.0 265.4   0.0
  5.|-- 192.168.52.10              6.0%   100  266.7 266.6 266.5 267.2   0.0

Faça uma captura de pacotes e analise os resultados

Faça uma captura de pacote no localhost e na instância do EC2. Use o utilitário tcpdump ou o Wireshark para obter tráfego de rede para análise. O comando de exemplo tcpdump a seguir obtém o carimbo de data/hora e o endereço IP do host:

tcpdump -i <network interface> -s0 -w $(date +"%Y%m%d_%H%M%S").$(hostname -s).pcap port <port>

Use a Calculadora de taxa de transferência de TCP no site do Switch para calcular o limite de rede, o produto de largura de banda e atraso e o tamanho do buffer de TCP.

Para obter mais informações, consulte Troubleshooting AWS Direct Connect (“Solução de problemas do AWS Direct Connect”).


Informações relacionadas

What’s the difference between a hosted virtual interface (VIF) and a hosted connection? (“Qual é a diferença entre uma interface virtual hospedada (VIF) e uma conexão hospedada?”)

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos