Ir para o conteúdo

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

9 minuto de leitura
0

Minha conexão do AWS Direct Connect está apresentando problemas de desempenho, incluindo throughput baixo, latência de tráfego e perda de pacote.

Resolução

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

Verifique se há problemas de rede ou de aplicação

Use a ferramenta iPerf3 para medir a largura de banda da rede e comparar os resultados com outras aplicações ou ferramentas. Para obter mais informações, consulte What is iPerf / iPerf3? (O que é iPerf/iPerf3?) no site do iPerf.

Conclua as etapas a seguir:

  1. Para instalar o iPerf3, execute um dos seguintes comandos no sistema operacional (SO) que você usa.

    Linux e Red Hat Enterprise Linux (RHEL):

    sudo yum install iperf3 -y

    Ubuntu:

    sudo apt install iperf3 -y
  2. Para medir o throughput bidirecionalmente, execute os seguintes comandos iPerf3 em seu servidor e cliente:

    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
    

    Observação: -P define threads paralelos para throughput máximo. -R inverte a direção do teste e -u usa o protocolo de datagrama do usuário (UDP) em vez do TCP para medir a perda de pacote.

No exemplo de resultados do teste de TCP a seguir, Bitrate é o throughput ou a velocidade de transmissão medida. Transfer é a quantidade total de dados trocados entre cliente e servidor. Retry é o número de pacotes retransmitidos. A retransmissão acontece no lado do remetente:

[ 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

No exemplo de resultados do teste de UDP a seguir, Lost é 0% no lado do remetente. Isso ocorre porque o par remetente (ID) e receptor (5) enviou o número máximo de datagramas de UDP. Lost/Total datagrams mostra quantos pacotes o receptor perdeu e a taxa de perda. Neste exemplo, o receptor perdeu 79% do tráfego da rede:

[ 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

Observação: se sua conexão do Direct Connect usa a AWS Site-to-Site VPN em uma interface virtual pública, execute testes de desempenho sem a VPN.

Verifique as métricas e os contadores de interface

Use o Amazon CloudWatch Logs para visualizar métricas que podem te ajudar a solucionar problemas. Por exemplo, verifique ConnectionErrorCount e procure valores diferentes de zero que mostrem um erro de controle de acesso à mídia (MAC) em um dispositivo da AWS. É possível usar a estatística Sum na métrica ConnectionErrorCount.

Visualize ConnectionLightLevelTx e ConnectionLightLevelRx para verificar se as leituras do sinal óptico estão dentro da faixa de -14,4 e 2,50 dBm.

Visualize ConnectionBpsEgress, ConnectionBpsIngress, VirtualInterfaceBpsEgress e VirtualInterfaceBpsIngress para garantir que a taxa de bits não tenha atingido a largura de banda máxima.

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

Se você usa uma interface virtual hospedada que compartilha a largura de banda total com outros usuários, consulte o proprietário do Direct Connect sobre a utilização da conexão. Para obter mais informações, consulte Conexões de rede híbridas.

Verifique se há os seguintes problemas em seu roteador e firewall no local do Direct Connect:

  • Procure irregularidades na utilização da CPU, da memória, das portas, quedas e descartes.
  • Execute o comando show interfaces statistics para identificar erros de entrada e saída da interface, como Verificação de redundância cíclica (CRC), quadros, colisões e erros de operadora.
  • Para erros de interface maiores, limpe ou substitua o cabo de conexão de fibra e o módulo Small Form-factor Pluggable (SFP).

Além disso, verifique se o Direct Connect está programado para manutenção.

Execute o MTR bidirecionalmente para verificar o caminho da rede

Execute o comando My Traceroute (MTR) para Linux para analisar o desempenho da rede. No Windows, é uma prática recomendada ativar o WSL 2 para que seja possível instalar o MTR em um subsistema Linux. Para obter mais informações, consulte What's new in WSL 2 (O que há de novo no WSL 2) no site da Microsoft. É possível baixar o WinMTR no site do SourceForge.

Para executar o MTR bidirecionalmente, conclua as seguintes etapas:

  1. Para instalar o MTR, execute um dos seguintes comandos em seu sistema operacional:

    Amazon Linux/RHEL:

    sudo yum install mtr -y

    Ubuntu:

    sudo apt install mtr -y
  2. Para a direção on-premises para 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 para on-premises, execute o MTR na instância do EC2 (baseada 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

O comando e a saída de exemplo a seguir mostram resultados de MTR baseados em ICMP:

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

O comando e a saída de exemplo a seguir mostram resultados de MTR baseados em TCP:

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

Nos resultados anteriores, cada linha em um salto representa um dispositivo de rede para um pacote de dados que passa da origem para o destino. Para obter mais informações sobre como ler os resultados de teste do MTR, consulte Reading MTR Output Network Diagnostic Tool (Lendo a ferramenta de diagnóstico de rede de saída do MTR) no site do ExaVault.

O comando e a saída de exemplo a seguir mostram resultados de MTR baseados em ICMP:

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

O comando e a saída de exemplo a seguir mostram resultados de MTR baseados em TCP:

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

Os exemplos anteriores mostram uma conexão do Direct Connect com os pares 10.110.120.1 e 10.110.120.2 do Protocolo de gateway da borda (BGP). Há uma porcentagem de perda no quarto e quinto salto de destino que mostra um problema com a conexão do Direct Connect ou com o roteador remoto 10.110.120.1. Como uma conexão do Direct Connect prioriza o TCP sobre o ICMP, um resultado de TCP MTR mostra uma porcentagem menor de perda.

O comando e a saída de exemplo a seguir mostram a perda de pacotes do firewall local ou 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 Wireshark para obter tráfego de rede para análise. Para obter mais informações sobre tcpdump, consulte tcpdump no site do tcpdump. Para baixar o Wireshark, consulte a página de download do Wireshark no site do Wireshark.

Por exemplo, execute o seguinte comando tcpdump para obter o carimbo de data/hora e o endereço IP do host:

tcpdump -i YOUR_NETWORK_INTERFACE  -s0 -w $(date +"%Y%m%d_%H%M%S").$(YOUR_HOSTNAME -s).pcap port YOUR_PORT

Observação: substitua YOUR_NETWORK_INTERFACE pela sua interface de rede, YOUR_HOSTNAME pelo nome do seu host e YOUR_PORT pela porta.

Use a calculadora de throughput de TCP no site do Switch para calcular o limite de rede, o produto com atraso de largura de banda e o tamanho do buffer TCP. Para obter mais informações, consulte Solução de problemas do Direct Connect.

Informações relacionadas

Qual é a diferença entre uma interface virtual hospedada (VIF) e uma conexão hospedada?

Improving performance on AWS and hybrid networks (Melhorando o desempenho na AWS e em redes híbridas)

AWS OFICIALAtualizada há 8 meses