Tenho uma instância do Amazon Elastic Compute Cloud (Amazon EC2) e quero encontrar o limite de pacotes de rede por segundo (PPS) para essa instância.
Breve descrição
O PPS para uma instância do EC2 depende de várias características de rede da instância. Essas características incluem os seguintes fatores:
- Mix de tráfego, TCP versus UDP
- Número de fluxos
- Tamanho do pacote
- Novas conexões versus conexões existentes
- Regras de grupos de segurança aplicadas
A permissão de PPS é considerada separadamente da permissão geral de largura de banda. Embora uma instância possa estar abaixo da permissão geral de largura de banda, você pode exceder a permissão de PPS se o tamanho médio do pacote for muito pequeno. Para determinar se sua instância atualmente excede o PPS alocado, extraia as informações do driver ENA.
Resolução
Para realizar um benchmark de PPS, use um teste iperf2. Dependendo das características da rede, os clientes podem usar o benchmark iPerf para determinar o limite aproximado de PPS de qualquer instância do EC2.
Para realizar o benchmark, conclua as seguintes etapas:
-
Use uma imagem do Amazon Linux 2 ou Amazon 2023 para criar duas instâncias do EC2 na mesma zona de disponibilidade.
Observação: as instâncias devem ser do mesmo tipo de instância.
-
Para instalar as ferramentas de desenvolvimento e o git nas duas instâncias, execute os seguintes comandos:
sudo yum groupinstall "Development Tools" -y
sudo yum install git -y
-
Execute os seguintes comandos para alterar o diretório para o diretório /usr/local e clonar o código iPerf do Git para as duas instâncias do EC2:
cd /usr/local/
sudo git clone https://git.code.sf.net/p/iperf2/code iperf2-code
-
Para criar e instalar o pacote nas duas instâncias do EC2, execute os seguintes comandos:
cd /usr/local/iperf2-codesudo
./configure
sudo make && make install
-
Para que a primeira instância atue como o servidor iPerf em execução no modo UDP para obter o máximo desempenho, execute o iPerf:
sudo /usr/local/bin/iperf -s -u
O comando retorna a seguinte saída:
------------------------------------------------------------
Server listening on UDP port 5001
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
-
Para que o cliente iPerf se conecte com êxito ao servidor iPerf, certifique-se de que o grupo de segurança associado ao servidor permita conexões em 5001/UDP. Para obter mais informações, consulte Exemplo de grupo de segurança.
-
Na segunda instância, use o cliente iPerf para se conectar com o UDP ao servidor iPerf:
sudo /usr/local/bin/iperf -c <private_ip_of_server_instance> -u -i 1 -l 16 -b 20kpps -e -P64 -o /tmp/bw_test.txt && grep -i sum-64 /tmp/bw_test.txt
Observação: substitua <private_ip_of_server_instance> pelo endereço IP interno do servidor iPerf.
A saída do comando é gravada em um arquivo de log em /tmp/bw_test.txt. O resumo de cada segundo em que o teste é executado é exibido, assim como o PPS.
O comando retorna a seguinte saída:
[SUM-64] 0.00-1.00 sec 9.42 MBytes 79.1 Mbits/sec 617416/2 617416 pps
[SUM-64] 1.00-2.00 sec 10.1 MBytes 84.3 Mbits/sec 658689/0 658692 pps
[SUM-64] 2.00-3.00 sec 10.1 MBytes 84.7 Mbits/sec 661837/0 661838 pps
[SUM-64] 3.00-4.00 sec 10.1 MBytes 84.6 Mbits/sec 661226/0 661226 pps
[SUM-64] 6.00-7.00 sec 9.73 MBytes 81.7 Mbits/sec 637975/0 637975 pps
[SUM-64] 7.00-8.00 sec 9.46 MBytes 79.4 Mbits/sec 620172/0 620172 pps
[SUM-64] 8.00-9.00 sec 9.46 MBytes 79.4 Mbits/sec 620150/0 620151 pps
Essa saída mostra o PPS máximo alcançado para esse tipo de instância. Para obter mais informações, consulte IPERF no site iPerf.
Informações relacionadas
Documentação do usuário do iPerf2 no site do iPerf