¿Cómo puedo comparar el rendimiento de la red en una instancia de Amazon EC2 Windows?

8 minutos de lectura
0

Necesito medir el ancho de banda de la red entre las instancias de Windows de Amazon Elastic Compute Cloud (Amazon EC2). ¿Cómo puedo hacerlo?

Resolución

Las pruebas comparativas de rendimiento de la red pueden ayudarlo a determinar los tipos, tamaños y configuraciones de instancias de Amazon EC2 que mejor se adapten a sus necesidades. Para obtener más información sobre el rendimiento de la red para cada tipo de instancia, consulte los tipos de instancias de Amazon EC2.

Inicie y configure sus instancias de Amazon EC2 para Windows

Antes de ejecutar las pruebas comparativas, siga estos pasos:

1.    Inicie dos instancias EC2 de Windows para ejecutar pruebas de rendimiento de red.

2.    Confirme que las instancias admiten redes mejoradas para Windows.

3.    Para realizar pruebas de red entre instancias que no estén ubicadas en el mismo grupo de ubicación o que no admitan tramas gigantes, compruebe y configure la unidad de transmisión máxima (MTU).

4.    Compruebe que puede conectarse a las instancias.

Instale la herramienta de referencia de red NTttcp en ambas instancias

Conéctese a cada una de las dos instancias de Windows y, a continuación, siga estos pasos:

1.    Descargue la última versión de NTttcp de Microsoft desde el sitio web de GitHub.

2.    Descomprima el contenido del archivo en una carpeta.

3.    Abra una línea de comandos con privilegios de administrador y, a continuación, cambie los directorios a la carpeta en la que descomprimió la herramienta de referencia de red NTttcp.

4.    Antes de ejecutar NTttcp, cambie los directorios a la carpeta cuyo nombre coincida con la arquitectura de su instancia EC2 de Windows.

Pruebe el rendimiento de la red TCP y UDP entre las instancias

NTttcp se comunica a través del puerto 5001 de forma predeterminada cuando se prueba el rendimiento de TCP y UDP. Sin embargo, puede configurar el puerto mediante el conmutador -p.

Importante:

  • Los grupos de seguridad deben configurarse para permitir la comunicación a través de los puertos que usa NTttcp.
  • Agregue reglas de Firewall de Windows entrantes y salientes tanto en el receptor como en el remitente que permitan las conexiones a NTttcp.exe.

Pruebe el rendimiento de la red TCP

1.    Configure una instancia como receptor/servidor para inicializar los agentes de escucha, empezando por el puerto predeterminado 5001. O bien, especifique un puerto de agente de escucha inicial alternativo con el conmutador -p.

Por ejemplo, el siguiente comando inicializa un receptor de dos subprocesos que escucha en los puertos 80-81 de la dirección IP especificada. El primer subproceso se ejecuta en la CPU 0 y el segundo en la 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

Los parámetros del receptor ntttcp.exe del ejemplo anterior se describen de la siguiente manera:

  • -r: Recibir.
  • -p ** 80**: Puerto utilizado por el primer subproceso para recibir datos. El número de puerto se incrementa para cada subproceso receptor adicional.
  • -a 6: Transferencia de datos asincrónica que publica seis búferes de recepción superpuestos por subproceso
  • -t 60: Duración de la prueba en segundos.
  • -cd 5: Tiempo de recuperación de la prueba de 5 segundos.
  • -wu 5: Tiempo de preparación de la prueba de 5 segundos.
  • -v: Especifique el resultado de la prueba detallado.
  • -xml: Guarde el resultado de la prueba en el archivo especificado (el valor predeterminado se guarda en xml.txt).
  • -m: Especifique tres parámetros de mapeo por sesión (número de subprocesos, CPUID, dirección IP del receptor). Las sesiones múltiples están delimitadas por espacios.

2.    Configure la segunda instancia como remitente/cliente y, a continuación, realice una prueba con el receptor con los parámetros que haya elegido.

Por ejemplo, el siguiente comando inicializa un remitente TCP de dos subprocesos en los puertos 80-81 de la dirección IP especificada. El primer subproceso se ejecuta en la CPU 0 y el segundo en la CPU 1.

Nota: El siguiente comando tiene la misma dirección IP que el comando del paso 1. Introduzca la dirección IP del receptor en ambos 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

Los parámetros del remitente de ntttcp.exe del ejemplo anterior se describen de la siguiente manera:

  • -s: Enviar.
  • -p 80: Puerto utilizado por el primer subproceso para enviar datos. Este número de puerto se incrementa para cada subproceso remitente adicional.
  • -a: El valor predeterminado de los búferes superpuestos de envío asincrónico por subproceso es 2. Especifique un valor no predeterminado si es necesario.
  • -t 60: Duración de la prueba en segundos.
  • -cd 5: Tiempo de recuperación de la prueba de 5 segundos.
  • -wu 5: Tiempo de preparación de la prueba de 5 segundos.
  • -m: Especifique tres parámetros de mapeo por sesión (número de subprocesos, CPUID, dirección IP del receptor). Las sesiones múltiples están delimitadas por espacios.

La salida XML generada en el receptor debe parecerse a la siguiente. En esta prueba, el ancho de banda total utilizado fue de aproximadamente 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>

Pruebe el rendimiento de la red UDP

1.    Configure una instancia como receptor/servidor para inicializar los agentes de escucha, empezando por el puerto predeterminado 5001. O bien, especifique un puerto de agente de escucha inicial alternativo con el conmutador -p.

Por ejemplo, el siguiente comando inicializa un receptor de dos subprocesos que escucha en los puertos 80-81 de la dirección IP especificada. El primer subproceso se ejecuta en la CPU 0 y el segundo en la 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

Los parámetros del receptor ntttcp.exe del ejemplo anterior se describen de la siguiente manera:

  • -r: Recibir.
  • -u: Probar UDP.
  • -p 80: Puerto utilizado por el primer subproceso para recibir datos. El número de puerto se incrementa para cada subproceso receptor adicional.
  • -t 60: Duración de la prueba en segundos.
  • -cd 5: Tiempo de recuperación de la prueba de 5 segundos.
  • -wu 5: Tiempo de preparación de la prueba de 5 segundos.
  • -v: Especifique el resultado de la prueba detallado.
  • -xml: Guarde el resultado de la prueba en el archivo especificado (el valor predeterminado se guarda en xml.txt).
  • -m: Especifique tres parámetros de mapeo por sesión (número de subprocesos, CPUID, dirección IP del receptor). Las sesiones múltiples están delimitadas por espacios.

2.    Configure una segunda instancia como remitente/cliente y, a continuación, ejecute una prueba con el receptor con los parámetros deseados.

Por ejemplo, el siguiente comando inicializa un remitente UDP de dos subprocesos en los puertos 80-81 de la dirección IP especificada. El primer subproceso se ejecuta en la CPU 0 y el segundo en la CPU 1.

Nota: El siguiente comando tiene la misma dirección IP que el comando del paso 1. Introduzca la dirección IP del receptor en ambos 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

Los parámetros del remitente de ntttcp.exe del ejemplo anterior se describen de la siguiente manera:

  • -s: Enviar.
  • -u: Probar UDP (el valor predeterminado es probar TCP).
  • -p 80: Puerto utilizado por el primer subproceso para enviar datos. El número de puerto se incrementa para cada subproceso remitente adicional.
  • -t 60: Duración de la prueba en segundos.
  • -cd 5: Tiempo de recuperación de la prueba de 5 segundos.
  • -wu 5: Tiempo de preparación de la prueba de 5 segundos.
  • -m: Especifique tres parámetros de mapeo por sesión (número de subprocesos, CPUID, dirección IP del receptor). Las sesiones múltiples están delimitadas por espacios.

La salida XML generada en el receptor debe tener un aspecto similar al siguiente:

<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>

Conmutadores NTttcp (opcionales) Para ver todos los conmutadores disponibles para su uso con NTttcp, abra una línea de comando y, a continuación, ejecute el siguiente comando:

ntttcp

Información relacionada

Unidad de transmisión máxima de red (MTU) para su instancia EC2

Grupos de ubicación

¿Cómo puedo comparar el rendimiento de la red entre instancias de Amazon EC2 Linux en la misma Amazon VPC?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 3 años