Come posso confrontare la velocità di trasmissione effettiva di rete tra le istanze Linux di Amazon EC2 nello stesso Amazon VPC?

9 minuti di lettura
0

Desidero misurare la larghezza di banda di rete tra le istanze Linux di Amazon Elastic Compute Cloud (Amazon EC2) nello stesso Amazon Virtual Private Cloud (Amazon VPC).

Breve descrizione

Di seguito alcuni fattori che possono influire sulle prestazioni di rete di Amazon EC2 quando le istanze si trovano nello stesso Amazon VPC:

  • La prossimità fisica delle istanze EC2: Le istanze nella stessa zona di disponibilità sono geograficamente più vicine tra loro. Nei seguenti scenari, le istanze sono progressivamente più distanti l'una dall'altra:
    Istanze in diverse zone di disponibilità nella stessa Regione AWS
    Istanze in diverse Regioni dello stesso continente
    Istanze in diverse Regioni in continenti diversi
  • L'unità di trasmissione massima (MTU) dell'istanza EC2. L'MTU di una connessione di rete è la dimensione di pacchetto massima consentita (in byte) che la connessione può superare. Tutti i tipi di istanze EC2 supportano 1500 MTU. Tutte le istanze Amazon EC2 di ultima generazione supportano i frame jumbo. Le istanze della generazione precedente, C3, G2, I2, M3 e R3 utilizzano anche frame jumbo. I frame jumbo consentono più di 1500 MTU. Tuttavia, esistono scenari in cui l'istanza è limitata a 1500 MTU anche con frame jumbo. Per ulteriori informazioni, vedere frame jumbo (9001 MTU).
  • La dimensione della tua istanza EC2: Le dimensioni di istanze più grandi per un tipo di istanza in genere offrono prestazioni di rete migliori rispetto alle dimensioni di istanze più piccole dello stesso tipo. Per ulteriori informazioni, consulta Tipi di istanza Amazon EC2.
  • Amazon EC2 ha migliorato il supporto di rete per Linux: Il supporto di rete migliorato potrebbe influire sulle prestazioni di istanze diverse dai tipi di istanza T2 e M3. Per ulteriori informazioni, vedi Reti avanzate su Linux. Per informazioni sulla rete avanzata sulla tua istanza, consulta How do I turn on and configure enhanced networking on my EC2 instances?
  • **Supporto HPC (High Performance Computing) di Amazon EC2 che utilizza gruppi di posizionamento:**L'HPC offre larghezza di banda completa e bassa latenza. L'HPC consente il supporto per velocità di rete fino a 100 gigabit, a seconda del tipo di istanza. Per esaminare le prestazioni di rete per ogni tipo di istanza, consulta la matrice dei tipi di istanza AMI di Amazon Linux. Per ulteriori informazioni, consulta Avviare istanze in un gruppo di posizionamento.
  • L'istanza utilizza un meccanismo di credito I/O di rete per allocare la larghezza di banda della rete: Le istanze designate con il simbolo nella colonna Prestazioni di rete in Istanze per uso generico: prestazioni di rete possono raggiungere le prestazioni di rete massime designate. Tuttavia, queste istanze utilizzano un meccanismo di credito I/O di rete per allocare la larghezza di banda alle istanze in base all'utilizzo medio della larghezza di banda. Pertanto, per queste istanze le prestazioni di rete variano.

A causa di questi fattori, potresti riscontrare differenze significative nelle prestazioni di rete tra diversi ambienti cloud. È consigliabile valutare e fare regolarmente previsioni per le prestazioni di rete dell'ambiente a valori che migliorino le prestazioni delle applicazioni. Il test delle prestazioni di rete fornisce informazioni preziose per determinare i tipi, le dimensioni e le configurazioni di istanze EC2 più adatti alle tue esigenze. Puoi eseguire test delle prestazioni di rete su qualsiasi combinazione di istanze che scegli.

Per ulteriori informazioni, apri una richiesta di assistenza su AWS Support e richiedi specifiche aggiuntive sulle prestazioni di rete per i tipi di istanze specifici che ti interessano.

Risoluzione

Prima di iniziare i test di benchmark, avvia e configura le tue istanze Linux EC2:

  1. Avvia due istanze Linux da cui puoi eseguire dei test delle prestazioni di rete.
  2. Verifica che le istanze supportino le reti avanzate su Linux e che si trovino nello stesso Amazon VPC.
  3. (Facoltativo) Se esegui test di rete tra istanze che non supportano i jumbo frame, segui i passaggi indicati in Unità di trasmissione massima di rete (MTU) per la tua istanza EC2 per verificare e impostare l'MTU sulla tua istanza.
  4. Connettiti alle istanze per verificare di poter accedere alle istanze.

Installa lo strumento di benchmark di rete iperf su entrambe le istanze

In alcune distribuzioni, come Amazon Linux, iperf fa parte dell’archivio Extra Packages for Enterprise Linux (EPEL). Per attivare il repository EPEL, consulta Come posso attivare il repository EPEL per la mia istanza Amazon EC2 con CentOS, RHEL o Amazon Linux?

Nota: il comando iperf si riferisce alla versione 2.x. Il comando iperf3 si riferisce alla versione 3.x. Usa la versione 2.x per eseguire il benchmark delle istanze EC2 con una velocità di trasmissione effettiva elevata perché la versione 2.x fornisce il supporto multi-thread. Sebbene la versione 3.x supporti anche flussi paralleli con il flag -P, la versione 3.x è a thread singolo e limitata da una singola CPU. Per questo motivo, la versione 3.x richiede più processi in esecuzione in parallelo per aumentare la velocità effettiva necessaria su istanze EC2 più grandi. Per ulteriori informazioni, vedi iperf2/iperf3 sul sito web ESnet.

Connettiti alle tue istanze Linux, quindi esegui i seguenti comandi per installare iperf.

Per installare iperf sugli host Linux RHEL 6, esegui il seguente comando:

# yum -y install  https://dl.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm  && yum -y install iperf

Per installare iperf sugli host Linux RHEL 7, esegui il seguente comando:

# yum -y install  https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm  && yum -y install iperf

Per installare iperf sugli host Debian/Ubuntu, esegui il seguente comando:

# apt-get install -y iperf

Per installare iperf sugli host CentOS 6/7, esegui il seguente comando:

# yum -y install epel-release && yum -y install iperf

Amazon Linux 2023

Poiché Amazon Linux 2023 (AL2023) non supporta EPEL, non puoi scaricare l'utilità iperf tramite il repository EPEL. Per ulteriori informazioni, vedi Pacchetti aggiuntivi per Enterprise Linux (EPEL).

Tuttavia, puoi scaricare e installare iperf per AL2023 manualmente:

  1. Installa gli strumenti di sviluppo e git:

    sudo yum groupinstall "Development Tools"sudo yum install git
  2. Clona il codice iperf:

    cd /usr/local/sudo git clone https://git.code.sf.net/p/iperf2/code iperf2-code
  3. Costruisci e installa il pacchetto:

    cd /usr/local/iperf2-codesudo ./configure
    sudo make
    sudo make install

Verifica le prestazioni della rete TCP tra le istanze

Per impostazione predefinita, iperf comunica tramite la porta 5001 durante il test delle prestazioni TCP. Tuttavia, è possibile configurare quella porta con lo switch -p. Assicurati di configurare i tuoi gruppi di sicurezza per consentire la comunicazione attraverso la porta utilizzata da iperf.

  1. Configura un'istanza come server per l'ascolto sulla porta predefinita o specifica una porta ascoltatore alternativa con lo switch -p. Sostituisci 5001 con la tua porta, se diversa:

    $ sudo iperf -s \[-p 5001\]
  2. Configura una seconda istanza come client ed esegui un test sul server con i parametri desiderati. Ad esempio, il comando seguente avvia un test TCP sull'istanza del server specificata con 40 connessioni parallele:

    $ iperf -c 172.31.30.41 --parallel 40 -i 1 -t 2

    Nota: per un test bidirezionale con iperf (versione 2), usa l'opzione**-r** sul lato client.

L'output utilizza questi parametri per mostrare l'intervallo per flusso client, i dati trasferiti per flusso client e la larghezza di banda utilizzata da ciascun flusso client. Il seguente output iperf mostra i risultati dei test per due istanze Linux EC2 c5n.18xlarge lanciate in un gruppo di posizionamento del cluster. La larghezza di banda totale trasmessa su tutte le connessioni è di 97,6 Gbit/secondo:

------------------------------------------------------------------------------------
Client connecting to 172.31.30.41, TCP port 5001
TCP window size:  975 KByte (default)
------------------------------------------------------------------------------------
[  8] local 172.31.20.27 port 49498 connected with 172.31.30.41 port 5001
[ 38] local 172.31.20.27 port 49560 connected with 172.31.30.41 port 5001
[ 33] local 172.31.20.27 port 49548 connected with 172.31.30.41 port 5001
[ 40] local 172.31.20.27 port 49558 connected with 172.31.30.41 port 5001
[ 36] local 172.31.20.27 port 49554 connected with 172.31.30.41 port 5001
[ 39] local 172.31.20.27 port 49562 connected with 172.31.30.41 port 5001
...
[SUM]  0.0- 2.0 sec  22.8 GBytes  97.6 Gbits/sec

Verifica le prestazioni della rete UDP tra le istanze

Per impostazione predefinita, iperf comunica tramite la porta 5001 durante il test delle prestazioni UDP. Tuttavia, è possibile utilizzare lo switch -p per configurare la porta. Assicurati di configurare i tuoi gruppi di sicurezza per consentire la comunicazione attraverso la porta utilizzata da iperf.

Nota: L'impostazione predefinita per UDP è 1 Mbit al secondo, a meno che non si specifichi una larghezza di banda diversa.

  1. Configura un'istanza come server per l'ascolto sulla porta UDP predefinita o specifica una porta ascoltatore alternativa con lo switch -p. Sostituisci 5001 con la tua porta, se diversa:

    $ sudo iperf -s -u \[-p 5001\]
  2. Configura una seconda istanza come client, quindi esegui un test sul server con i parametri desiderati. L'esempio seguente avvia un test UDP sull'istanza del server specificata con il parametro -b impostato su 5g. Il parametro -b modifica la larghezza di banda a 5g dal valore predefinito UDP di 1 Mbit al secondo. 5g è la massima prestazione di rete che un'istanza c5n18xlarge può fornire per un singolo flusso di traffico all'interno di un VPC:
    Nota: UDP è privo di connessione e non dispone degli algoritmi di controllo dell’intasamento di TCP. Durante il test con iperf, la larghezza di banda ottenuta con UDP potrebbe essere inferiore alla larghezza di banda ottenuta con TCIP.

    \# iperf -c 172.31.1.152 -u -b 5g

Questo è un esempio di output del test UDP:

$ iperf -c 172.31.30.41 -u -b 5g
------------------------------------------------------------------------------------
Client connecting to 172.31.30.41, UDP port 5001
Sending 1470 byte datagrams, IPG target: 2.35 us (kalman adjust)
UDP buffer size:  208 KByte (default)
------------------------------------------------------------------------------------
[  3] local 172.31.20.27 port 39022 connected with 172.31.30.41 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3] 0.0-10.0 sec  5.82 GBytes  5.00 Gbits/sec
[  3] Sent 4251700 datagrams
[  3] Server Report:
[  3] 0.0-10.0 sec  5.82 GBytes  5.00 Gbits/sec   0.003 ms 1911/4251700 (0.045%)
[  3] 0.00-10.00 sec  1 datagrams received out-of-order

Questo output mostra i seguenti valori:

  • Intervallo (tempo)
  • Quantità di dati trasferiti
  • Larghezza di banda raggiunta
  • Jitter (la deviazione nel tempo per l'arrivo periodico dei grammi di dati)
  • Perdita e totale dei datagrammi UDP

Informazioni correlate

Test del disco utilizzando iperf3 sul sito web ESnet

Attivazione della rete sul sito web ESnet

Confronto tra strumenti di velocità di trasmissione effettiva sul sito web ESnet

iperf2 sul sito web di SourceForge

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa