Como faço para comparar o throughput de rede em uma instância Windows do Amazon EC2?
Preciso medir a largura de banda da rede entre as instâncias Windows do Amazon Elastic Compute Cloud (Amazon EC2). Como posso fazer isso?
Resolução
O teste de avaliação comparativa de desempenho de rede pode ajudar você a determinar os tipos, tamanhos e configurações de instâncias do Amazon EC2 que melhor atendem às suas necessidades. Para mais informações sobre o desempenho da rede de cada tipo de instância, consulte Tipos de instância do Amazon EC2.
Inicie e configure suas instâncias Windows do Amazon EC2
Antes de executar testes de avaliação comparativa, siga estas etapas:
1. Inicie duas instâncias Windows do EC2 para executar testes de desempenho de rede.
2. Confirme se as instâncias oferecem suporte à rede aprimorada do Windows.
3. Para executar testes de rede entre instâncias que não estão localizadas no mesmo grupo de posicionamento ou que não tenham suporte para frames jumbo, verifique e defina a unidade máxima de transmissão (MTU).
4. Verifique se você pode se conectar às instâncias.
Instale a ferramenta de avaliação comparativa de rede NTttcp em ambas as instâncias
Conecte-se a cada uma das duas instâncias do Windows e siga estas etapas:
1. Baixe a versão mais recente da NTttcp da Microsoft no site do GitHub.
2. Descompacte o conteúdo do arquivo em uma pasta.
3. Abra um prompt de comando com privilégios de administrador e, em seguida, altere os diretórios para a pasta em que você descompactou a ferramenta de avaliação comparativa de rede NTttcp.
4. Antes de executar a ferramenta NTttcp, altere os diretórios na pasta com o nome correspondente à arquitetura da sua instância Windows do EC2.
Teste o desempenho da rede TCP e UDP entre as instâncias
A ferramenta NTttcp se comunica pela porta 5001 por padrão ao testar o desempenho de TCP e UDP. No entanto, você pode configurar a porta usando a opção -p.
Importante:
- os grupos de segurança devem ser configurados para permitir a comunicação pelas portas que a ferramenta NTttcp utiliza.
- Adicione regras de entrada e saída do Firewall do Windows no receptor e no remetente que permitam conexões com NTttcp.exe.
Teste o desempenho da rede TCP
1. Configure uma instância como receptor/servidor para inicializar os receptores, começando pela porta padrão 5001. Ou especifique uma porta de receptor inicial alternativa com a opção -p.
Por exemplo, o comando a seguir inicializa um receptor com dois threads que escuta nas portas 80-81 do endereço IP especificado. O primeiro thread é executado na CPU 0 e o segundo na CPU 1.
ntttcp -r -p 80 -a 6 -t 60 -cd 5 -wu 5 -v -xml c:\bench.xml -m 1,0,192.168.1.4 1,1,192.168.1.4
Os parâmetros do receptor ntttcp.exe no exemplo anterior são descritos a seguir:
- -r: receber.
- -p 80: porta usada pelo primeiro thread para receber dados. O número da porta é incrementado para cada thread adicional do receptor.
- -a 6: transferência assíncrona de dados que envia seis buffers sobrepostos por thread
- -t 60: duração do teste em segundos.
- -cd 5: tempo de esfriamento do teste de 5 segundos.
- -wu 5: tempo de aquecimento do teste de 5 segundos.
- -v: especificar a saída detalhada do teste.
- -xml: salvar a saída do teste no arquivo especificado (o padrão é salvo em xml.txt).
- -m: especificar três parâmetros de mapeamento por sessão (# threads, CPUID, endereço IP do receptor). Várias sessões são delimitadas por espaço.
2. Configure a segunda instância como remetente/cliente e, em seguida, execute um teste no receptor com os parâmetros escolhidos.
Por exemplo, o comando a seguir inicializa um remetente TCP com dois threads nas portas 80-81 do endereço IP especificado. O primeiro thread é executado na CPU 0 e o segundo na CPU 1.
Observação: o comando a seguir tem o mesmo endereço IP do comando na etapa 1. Digite o endereço IP do receptor nos dois comandos.
ntttcp -s -p 80 -a -t 60 -cd 5 -wu 5 -m 1,0,192.168.1.4 1,1,192.168.1.4
Os parâmetros do remetente de ntttcp.exe no exemplo anterior são descritos a seguir:
- -s: enviar.
- -p 80: porta usada pelo primeiro thread para enviar dados. Esse número de porta é incrementado para cada thread de remetente adicional.
- -a: o valor padrão de buffers sobrepostos de envio assíncrono por thread é 2. Especifique um valor não padrão, se necessário.
- -t 60: duração do teste em segundos.
- -cd 5: tempo de esfriamento do teste de 5 segundos.
- -wu 5: tempo de aquecimento do teste de 5 segundos.
- -m: especificar três parâmetros de mapeamento por sessão (# threads, CPUID, endereço IP do receptor). Várias sessões são delimitadas por espaço.
A saída XML gerada no receptor deve ser semelhante à seguinte. Nesse teste, a largura de banda total usada foi de cerca de 9,02 GBps.
<ntttcpr computername="Win_EC2_Recv" version="5.31"> <parameters> <send_socket_buff>0</send_socket_buff> <recv_socket_buff>-1</recv_socket_buff> <port>82</port> <sync_port>False</sync_port> <async>True</async> <verbose>True</verbose> <wsa>False</wsa> <use_ipv6>False</use_ipv6> <udp>False</udp> <verify_data>False</verify_data> <wait_all>False</wait_all> <run_time>60000</run_time> <warmup_time>5000</warmup_time> <cooldown_time>5000</cooldown_time> <dash_n_timeout>10800000</dash_n_timeout> <bind_sender>False</bind_sender> <sender_name></sender_name> <max_active_threads>2</max_active_threads> </parameters> <thread index="0"> <realtime metric="s">60.012</realtime> <throughput metric="KB/s">542199.263</throughput> <throughput metric="MB/s">529.491</throughput> <throughput metric="mbps">4441.696</throughput> <avg_bytes_per_compl metric="B">65091.350</avg_bytes_per_compl> </thread> <thread index="1"> <realtime metric="s">60.012</realtime> <throughput metric="KB/s">559260.669</throughput> <throughput metric="MB/s">546.153</throughput> <throughput metric="mbps">4581.463</throughput> <avg_bytes_per_compl metric="B">65535.750</avg_bytes_per_compl> </thread> <total_bytes metric="MB">64550.500000</total_bytes> <realtime metric="s">60.011000</realtime> <avg_bytes_per_compl metric="B">65316.236</avg_bytes_per_compl> <threads_avg_bytes_per_compl metric="B">65313.550</threads_avg_bytes_per_compl> <avg_frame_size metric="B">8194.809</avg_frame_size> <throughput metric="MB/s">1075.644</throughput> <throughput metric="mbps">9023.160</throughput> <total_buffers>1032808.000</total_buffers> <throughput metric="buffers/s">17210.311</throughput> <avg_packets_per_interrupt metric="packets/interrupt">5.749 </avg_packets_per_interrupt> <interrupts metric="count/sec">23942.694</interrupts> <dpcs metric="count/sec">9546.816</dpcs> <avg_packets_per_dpc metric="packets/dpc">14.417 </avg_packets_per_dpc> <cycles metric="cycles/byte">2.826</cycles> <packets_sent>730596</packets_sent> <packets_received>8259632</packets_received> <packets_retransmitted>0</packets_retransmitted> <errors>0</errors> <cpu metric="%">7.813</cpu> <bufferCount>9223372036854775807</bufferCount> <bufferLen>65536</bufferLen> <io>6</io> </ntttcpr>
Teste o desempenho da rede UDP
1. Configure uma instância como receptor/servidor para inicializar os receptores, começando pela porta padrão 5001. Ou especifique uma porta de receptor inicial alternativa com a opção -p.
Por exemplo, o comando a seguir inicializa um receptor com dois threads que escuta nas portas 80-81 do endereço IP especificado. O primeiro thread é executado na CPU 0 e o segundo na CPU 1.
ntttcp –r –u -p 80 –t 60 –cd 5 –wu 5 –v –xml c:\\bench.xml –m 1,0,192.168.1.4 1,1,192.168.1.4
Os parâmetros do receptor ntttcp.exe no exemplo anterior são descritos a seguir:
- -r: receber.
- -u: testar o UDP.
- -p 80: porta usada pelo primeiro thread para receber dados. O número da porta é incrementado para cada thread adicional do receptor.
- -t 60: duração do teste em segundos.
- -cd 5: tempo de esfriamento do teste de 5 segundos.
- -wu 5: tempo de aquecimento do teste de 5 segundos.
- -v: especificar a saída detalhada do teste.
- -xml: salvar a saída do teste no arquivo especificado (o padrão é salvo em xml.txt).
- -m: especificar três parâmetros de mapeamento por sessão (# threads, CPUID, endereço IP do receptor). Várias sessões são delimitadas por espaço.
2. Configure uma segunda instância como remetente/cliente e, em seguida, execute um teste no receptor com os parâmetros desejados.
Por exemplo, o comando a seguir inicializa um remetente UDP com dois threads nas portas 80-81 do endereço IP especificado. O primeiro thread é executado na CPU 0 e o segundo na CPU 1.
Observação: o comando a seguir tem o mesmo endereço IP do comando na etapa 1. Digite o endereço IP do receptor nos dois comandos.
ntttcp -s –u -p 80 -t 60 -cd 5 -wu 5 -m 1,0,192.168.1.4 1,1,192.168.1.4
Os parâmetros do remetente de ntttcp.exe no exemplo anterior são descritos a seguir:
- -s: enviar.
- -u: testar o UDP (o padrão é testar o TCP).
- -p 80: porta usada pelo primeiro thread para enviar dados. O número da porta é incrementado para cada thread de remetente adicional.
- -t 60: duração do teste em segundos.
- -cd 5: tempo de esfriamento do teste de 5 segundos.
- -wu 5: tempo de aquecimento do teste de 5 segundos.
- -m: especificar três parâmetros de mapeamento por sessão (# threads, CPUID, endereço IP do receptor). Várias sessões são delimitadas por espaço.
A saída XML gerada no receptor deve ser semelhante à seguinte:
<ntttcpr computername="Win_UDP_Test" version="5.31"> <parameters> <send_socket_buff>8192</send_socket_buff> <recv_socket_buff>-1</recv_socket_buff> <port>82</port> <sync_port>False</sync_port> <async>False</async> <verbose>True</verbose> <wsa>False</wsa> <use_ipv6>False</use_ipv6> <udp>True</udp> <verify_data>False</verify_data> <wait_all>False</wait_all> <run_time>60000</run_time> <warmup_time>5000</warmup_time> <cooldown_time>5000</cooldown_time> <dash_n_timeout>10800000</dash_n_timeout> <bind_sender>False</bind_sender> <sender_name></sender_name> <max_active_threads>2</max_active_threads> </parameters> <thread index="0"> <realtime metric="s">60.016</realtime> <throughput metric="KB/s">6463.886</throughput> <throughput metric="MB/s">6.312</throughput> <throughput metric="mbps">52.952</throughput> <avg_bytes_per_compl metric="B">128.000</avg_bytes_per_compl> </thread> <thread index="1"> <realtime metric="s">60.016</realtime> <throughput metric="KB/s">7712.922</throughput> <throughput metric="MB/s">7.532</throughput> <throughput metric="mbps">63.184</throughput> <avg_bytes_per_compl metric="B">128.000</avg_bytes_per_compl> </thread> <total_bytes metric="MB">830.880005</total_bytes> <realtime metric="s">60.015000</realtime> <avg_bytes_per_compl metric="B">128.000</avg_bytes_per_compl> <threads_avg_bytes_per_compl metric="B">128.000<</threads_avg_bytes_per_compl> <avg_frame_size metric="B">127.780</avg_frame_size> <throughput metric="MB/s">13.845</throughput> <throughput metric="mbps">116.136</throughput> <total_buffers>6806569.000</total_buffers> <throughput metric="buffers/s">113414.463</throughput> <avg_packets_per_interrupt metric="packets/interrupt">1.968 </avg_packets_per_interrupt> <interrupts metric="count/sec">57715.621</interrupts> <dpcs metric="count/sec">11576.306</dpcs> <avg_packets_per_dpc metric="packets/dpc">9.814</avg_packets_per_dpc> <cycles metric="cycles/byte">210.673</cycles> <packets_sent>2</packets_sent> <packets_received>6818294</packets_received> <packets_retransmitted>0</packets_retransmitted> <errors>1</errors> <cpu metric="%">44.976</cpu> <bufferCount>9223372036854775807</bufferCount> <bufferLen>128</bufferLen> <io>2</io> </ntttcpr>
Opções da NTttcp (opcionais) Para visualizar todas as opções disponíveis para usar com a ferramenta NTttcp, abra um prompt de comando e execute o seguinte comando:
ntttcp
Informações relacionadas
Unidade de transmissão máxima de rede (MTU) para sua instância do EC2
Conteúdo relevante
- Resposta aceitafeita há 7 diaslg...
- feita há 9 diaslg...
- feita há 23 diaslg...
- feita há 9 diaslg...
- AWS OFICIALAtualizada há um mês
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há um ano