GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come utilizzare Iperf per testare le prestazioni di rete in Linux

L'iperf è uno strumento utilizzato per testare le prestazioni della rete tra due sistemi. L'applicazione iperf fornisce più metriche per le prestazioni di una rete. L'applicazione iperf non è installata di default, ma è fornita dal gestore di pacchetti della maggior parte delle distribuzioni.

Per i sistemi CentOS/RHEL/Fedora usa yum, per installare il pacchetto iperf.

# yum install iperf

iperf ha la nozione di "client" e "server" per testare il throughput della rete tra due sistemi.

L'esempio seguente imposta una grande dimensione del buffer di invio e ricezione per massimizzare la velocità effettiva ed esegue un test per 60 secondi che dovrebbe essere abbastanza lungo per esercitare completamente una rete.

Server

Sul sistema server, a iperf viene detto di restare in attesa di una connessione client:

server # iperf3 -i 10 -s

Ecco,
-i – l'intervallo per fornire aggiornamenti periodici della larghezza di banda
-s – ascolta come un server

Vedi man iperf3 per ulteriori informazioni su specifiche opzioni della riga di comando.

Cliente

Sul sistema client, a iperf viene detto di connettersi al server in ascolto tramite nome host o indirizzo IP:

client # iperf3 -i 10 -w 1M -t 60 -c [server hostname or ip address]

Ecco,
-i – l'intervallo per fornire aggiornamenti periodici della larghezza di banda
-w – la dimensione del buffer del socket (che influisce sulla finestra TCP). La dimensione del buffer è impostata anche sul server da questo comando client
-t – il tempo per eseguire il test in secondi
-c – connettiti a un server in ascolto su...

Vedi man iperf3 per ulteriori informazioni su specifiche opzioni della riga di comando.

Risultati del test

Sia il client che il server riportano i loro risultati una volta completato il test:

Server

server # iperf3 -i 10 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 10.0.0.2, port 22216
[  5] local 10.0.0.1 port 5201 connected to 10.0.0.2 port 22218
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-10.00  sec  17.5 GBytes  15.0 Gbits/sec                  
[  5]  10.00-20.00  sec  17.6 GBytes  15.2 Gbits/sec                  
[  5]  20.00-30.00  sec  18.4 GBytes  15.8 Gbits/sec                  
[  5]  30.00-40.00  sec  18.0 GBytes  15.5 Gbits/sec                  
[  5]  40.00-50.00  sec  17.5 GBytes  15.1 Gbits/sec                  
[  5]  50.00-60.00  sec  18.1 GBytes  15.5 Gbits/sec                  
[  5]  60.00-60.04  sec  82.2 MBytes  17.3 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-60.04  sec  0.00 Bytes    0.00 bits/sec                  sender
[  5]   0.00-60.04  sec   107 GBytes  15.3 Gbits/sec                  receiver

Cliente

client # iperf3 -i 10 -w 1M -t 60 -c 10.0.0.1
Connecting to host 10.0.0.1, port 5201
[  4] local 10.0.0.2 port 22218 connected to 10.0.0.1 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-10.00  sec  17.6 GBytes  15.1 Gbits/sec    0   6.01 MBytes       
[  4]  10.00-20.00  sec  17.6 GBytes  15.1 Gbits/sec    0   6.01 MBytes       
[  4]  20.00-30.00  sec  18.4 GBytes  15.8 Gbits/sec    0   6.01 MBytes       
[  4]  30.00-40.00  sec  18.0 GBytes  15.5 Gbits/sec    0   6.01 MBytes       
[  4]  40.00-50.00  sec  17.5 GBytes  15.1 Gbits/sec    0   6.01 MBytes       
[  4]  50.00-60.00  sec  18.1 GBytes  15.5 Gbits/sec    0   6.01 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-60.00  sec   107 GBytes  15.4 Gbits/sec    0             sender
[  4]   0.00-60.00  sec   107 GBytes  15.4 Gbits/sec                  receiver

Lettura dei risultati

Tra questi due sistemi, potremmo raggiungere una larghezza di banda di 15,4 gigabit al secondo o circa 1835 MiB (mebibyte) al secondo.

Qui,
Intervallo indica l'intervallo di test, il valore predefinito è 10 secondi e viene visualizzato come "0,0-10,0 sec"
Trasferisci indica la quantità di dati trasferiti tra i due nodi durante il processo di test.
Larghezza di banda è l'indicatore di performance per il quale utilizziamo iperf testing.

Nota :il server è in ascolto sulla porta TCP 5201 per impostazione predefinita. Questa porta dovrà essere consentita attraverso tutti i firewall presenti. La porta utilizzata può essere modificata con l'opzione della riga di comando -p.

Test delle prestazioni della rete con il protocollo UDP

L'iperf predefinito utilizza il protocollo TCP per i test come mostrato sopra. Aggiungi l'opzione "-u ” per utilizzare il protocollo UDP per il test delle prestazioni.

1. Il primo passo è avviare il server.

# iperf -s -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:   124 KByte (default)
------------------------------------------------------------

[  3] local 1.1.1.1 port 5001 connected with 1.1.1.2 port 51598
[ ID] Interval       Transfer     Bandwidth       Jitter   Lost/Total Datagrams
[  3]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec  0.004 ms    0/  893 (0%)

2. Il comando lato client è come mostrato di seguito.

# iperf -u -c server
------------------------------------------------------------
Client connecting to 1.1.1.1, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:   124 KByte (default)
------------------------------------------------------------
[  3] local 1.1.1.2 port 51598 connected with 1.1.1.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec
[  3] Sent 893 datagrams
[  3] Server Report:
[ ID] Interval       Transfer     Bandwidth       Jitter   Lost/Total Datagrams
[  3]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec  0.004 ms    0/  893 (0%)

Modifica della larghezza di banda predefinita in modalità UDP

Nella modalità UDP, il client utilizza la larghezza di banda predefinita (1 Mbit/sec) per inviare i pacchetti al server, quindi possiamo vedere che la larghezza di banda del risultato del test UDP è 1,05 Mbit/sec. Per ottenere la migliore larghezza di banda della rete, possiamo aggiungere l'opzione "-b value ” per aumentare la larghezza di banda di invio:

# iperf -u -c server -b 1000M
------------------------------------------------------------
Client connecting to 1.1.1.1, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:   124 KByte (default)
------------------------------------------------------------
[  3] local 1.1.1.2 port 58097 connected with 1.1.1.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.10 GBytes    948 Mbits/sec
[  3] Sent 806540 datagrams
[  3] Server Report:
[ ID] Interval       Transfer     Bandwidth       Jitter   Lost/Total Datagrams
[  3]  0.0-10.0 sec  1.08 GBytes    929 Mbits/sec  0.010 ms 16203/806540 (2%)

Misurazione della dimensione massima di trasferimento (MTU)

L'opzione -m indica a iperf di trovare anche la dimensione massima di trasferimento (MTU):

# iperf -mc 192.168.10.12
------------------------------------------------------------
Client connecting to 192.168.10.12, TCP port 5001
TCP window size: 19.3 KByte (default)
------------------------------------------------------------
[  3] local 192.168.10.13 port 46558 connected with 192.168.10.12 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   113 MBytes  94.7 Mbits/sec
[  3] MSS size 1448 bytes (MTU 1500 bytes, ethernet)


Cent OS
  1. Come usare BusyBox su Linux

  2. Come uso cron in Linux

  3. Come usare TROVA in Linux

  4. Come usare il comando Su in Linux

  5. Come usare il comando mtr di Linux

Come usare il comando nohup di Linux

Come utilizzare gli operatori di test di file Bash in Linux

Introduzione alla VPN ed ecco come usarla in Linux

Come utilizziamo Linux Test Project per testare e migliorare Linux

Come configurare e utilizzare il bridge di rete in Ubuntu Linux

Come usare il comando netstat in Linux