Ik heb in totaal vier servers in een cloudgebaseerd datacenter geplaatst. Ze draaien CentOS of Ubuntu Linux. Ik moet ervoor zorgen dat de prestaties van het geclusterde bestandssysteem redelijk zijn omdat mijn servers worden gedeeld met andere gebruikers. Hoe controleer ik de snelheid tussen de twee Linux-servers met behulp van opdrachtregelopties voor privé LAN/VLAN?

U kunt de netwerksnelheid/doorvoer tussen Ubuntu/CentOS/Debian/Fedora Linux of Unix box testen met het iperf commando. Iperf-commando’s geven informatie over bandbreedte, vertraging, jitter en verlies van datagrammen. Het is een tool voor het uitvoeren van netwerk throughput metingen. Het kan zowel TCP als UDP doorvoer testen. Om een iperf-test uit te voeren moet de gebruiker zowel een server (om verkeer te verwijderen) als een client (om verkeer te genereren) opzetten. Deze pagina legt uit hoe je de netwerksnelheid/doorvoer tussen twee Linux servers kunt testen.

Tutorial details
Difficulty moeilijkheidsgraad Easy
Root privileges Ja
Eisen Linux met iperf
Est. leestijd 8 mint

Mijn voorbeeldopstelling om de netwerksnelheid/doorvoer tussen twee Linux servers te testen

Fig.01 Netwerksnelheid testen tussen twee Linux computers

Fig.01 Netwerksnelheid testen tussen twee Linux computers

Stap 1 – Installatie

U moet iperf installeren volgens de versie van uw Linux distro. Er zijn twee versies van iperf:

  1. iperf
  2. iperf3

De iperf/iperf3 werkt op Linux, Unix, Windows, *BSD en andere besturingssystemen.

Installeer iperf op een Ubuntu/Debian Linux server

Typ het volgende apt-get commando/apt commando om iperf op beide servers te installeren:
$ sudo apt-get update
$ sudo apt-get install iperf

Hier is wat we zien op Ubuntu 20.04 LTS systeem:

 password for vivek: Reading package lists... DoneBuilding dependency tree Reading state information... DoneThe following NEW packages will be installed: iperf0 upgraded, 1 newly installed, 0 to remove and 23 not upgraded.Need to get 76.5 kB of archives.After this operation, 213 kB of additional disk space will be used.Get:1 http://archive.ubuntu.com/ubuntu focal/universe amd64 iperf amd64 2.0.13+dfsg1-1build1 Fetched 76.5 kB in 1s (70.5 kB/s) Selecting previously unselected package iperf.(Reading database ... 344795 files and directories currently installed.)Preparing to unpack .../iperf_2.0.13+dfsg1-1build1_amd64.deb ...Unpacking iperf (2.0.13+dfsg1-1build1) ...Setting up iperf (2.0.13+dfsg1-1build1) ...Processing triggers for man-db (2.9.1-1) ...

Een opmerking over het installeren van iperf3 op een Debian/Ubuntu Linux

Het is ook mogelijk om iperf3 (laatste versie) als volgt te installeren:
$ sudo apt-get install iperf3
Uitvoer:

Reading package lists... DoneBuilding dependency tree Reading state information... DoneThe following additional packages will be installed: libiperf0The following NEW packages will be installed: iperf3 libiperf00 upgraded, 2 newly installed, 0 to remove and 23 not upgraded.Need to get 86.2 kB of archives.After this operation, 294 kB of additional disk space will be used.Do you want to continue? yGet:1 http://archive.ubuntu.com/ubuntu focal/universe amd64 libiperf0 amd64 3.7-3 Get:2 http://archive.ubuntu.com/ubuntu focal/universe amd64 iperf3 amd64 3.7-3 Fetched 86.2 kB in 1s (97.4 kB/s) Selecting previously unselected package libiperf0:amd64.(Reading database ... 344807 files and directories currently installed.)Preparing to unpack .../libiperf0_3.7-3_amd64.deb ...Unpacking libiperf0:amd64 (3.7-3) ...Selecting previously unselected package iperf3.Preparing to unpack .../iperf3_3.7-3_amd64.deb ...Unpacking iperf3 (3.7-3) ...Setting up libiperf0:amd64 (3.7-3) ...Setting up iperf3 (3.7-3) ...Processing triggers for man-db (2.9.1-1) ...Processing triggers for libc-bin (2.31-0ubuntu9.2) ...

Installeren van iperf op een Fedora nieuwste/RHEL/CentOS 8 Linux server

Type het volgende dnf commando om iperf op beide servers te installeren:
$ sudo dnf install iperf

Een opmerking over het installeren van iperf3 op een CentOS/RHEL/SL/Oracle Linux

Type het volgende commando:
$ sudo dnf install iperf3

Installeer iperf op een CentOS/RHEL/Oracle/Scientific Linux server

Type het volgende yum commando om iperf op beide servers te installeren (zet eerst de EPEL repo aan voor CentOS/RHEL 7.x):
$ sudo yum install iperf
Als u de laatste versie van Fedora en CentOS/RHEL 8.x gebruikt, probeer dan het dnf commando als volgt:
$ sudo dnf install iperf3

Hoe de netwerksnelheid te testen tussen twee Linux servers

Installatie van iperf3 op een CentOS of RHEL 8.x server

Een opmerking over het installeren van iperf3 op een CentOS/RHEL/SL/Oracle Linux

Typ het volgende commando:
$ sudo yum install iperf3

Stap 2 – Start een iperf server op serverA (server modus)

Typ het volgende commando om iperf in server modus uit te voeren:
iperf -s
Of
iperf3 -s
Voorbeelduitvoer:

------------------------------------------------------------Server listening on TCP port 5001TCP window size: 85.3 KByte (default)------------------------------------------------------------

Noteer de TCP-poort # 5001.

Een opmerking over firewall configuratie

Merk op dat u TCP poort 5001 moet openen op de serverA. Zie hoe u ufw gebruikt om een poort te openen op Ubuntu/Debian Linux:
$ sudo ufw allow from 192.168.149.0/24 to 192.168.149.69 port 5001 proto tcp
CentOS/RHEL/Fedora gebruikers moeten de poort openen met FirewallD. Zie hoe u een firewall instelt met FirewallD op CentOS 8:
sudo firewall-cmd --zone=public --add-port=5001/tcp --permanent
Het is ook mogelijk om de poort te veranderen door de -p optie als volgt door te geven (bijv. open en gebruik TCP poort 2323):
iperf -s -p 2323
iperf3 -s -p 4242

-----------------------------------------------------------Server listening on 4242-----------------------------------------------------------

Stap 3 – Start een iperf server op serverB (client mode)

Type het volgende commando om in client mode te draaien, en maak verbinding met 192.168.149.69:
iperf -c {ip-address-of-serverA-here}
iperf -c {ip-address-of-serverA-here} -p {tcp-port}
iperf -c 192.168.149.69 -p 2323
iperf -c 192.168.149.69

Of
iperf3 -c {ip-address-of-serverA-here}
iperf3 -c {ip-address-of-serverA-here} -p {tcp-port}
iperf3 -c 192.168.149.69 -p 2323
iperf3 -c 192.168.149.69

Monsteruitvoer:

Fig.02: Linux netwerksnelheidstest resultaat

Fig.02: Linux netwerk snelheidstest resultaat

Hoe UDP te gebruiken in plaats van TCP

Aan de server kant:
iperf -s -u
Aan de client kant:
iperf -c 192.168.149.69 -u

Zie ook: Hoe Speedtest-cli te installeren op een CentOS / RHEL / Scientific / Fedora Linux Om Internet Snelheid Te Controleren Vanuit de Bash Shelll

Hoe stel je het aantal parallelle client threads in om te draaien (client mode opties)

Pas de -P optie toe:
iperf -c 192.168.149.69 -P 3
U kunt ook de tijd in seconden instellen om te zenden (standaard 10 sec), en wel als volgt:
iperf -c 192.168.149.69 -P 3 -t 30
Voorbeelduitvoer:

------------------------------------------------------------Client connecting to 192.168.149.69, TCP port 5001TCP window size: 85.0 KByte (default)------------------------------------------------------------ local 192.168.181.40 port 54198 connected with 192.168.149.69 port 5001 local 192.168.181.40 port 54194 connected with 192.168.149.69 port 5001 local 192.168.181.40 port 54196 connected with 192.168.149.69 port 5001 Interval Transfer Bandwidth 0.0-30.0 sec 2.26 GBytes 647 Mbits/sec 0.0-30.0 sec 2.89 GBytes 828 Mbits/sec 0.0-30.5 sec 1.91 GBytes 539 Mbits/sec 0.0-30.5 sec 7.07 GBytes 1.99 Gbits/sec

Hier is de output van iperf3:
## on the server side ##
iperf3 -s
## on the client side ##
iperf3 -c 192.168.149.69

Voorbeelduitvoer:

Connecting to host 192.168.149.69, port 5201 local 192.168.181.40 port 55522 connected to 192.168.149.69 port 5201 Interval Transfer Bandwidth Retr Cwnd 0.00-1.00 sec 235 MBytes 1.97 Gbits/sec 32 609 KBytes 1.00-2.00 sec 230 MBytes 1.93 Gbits/sec 21 670 KBytes 2.00-3.00 sec 159 MBytes 1.33 Gbits/sec 19 635 KBytes 3.00-4.00 sec 235 MBytes 1.97 Gbits/sec 7 686 KBytes 4.00-5.00 sec 229 MBytes 1.92 Gbits/sec 86 757 KBytes 5.00-6.00 sec 206 MBytes 1.73 Gbits/sec 6 537 KBytes 6.00-7.00 sec 210 MBytes 1.76 Gbits/sec 5 556 KBytes 7.00-8.00 sec 235 MBytes 1.97 Gbits/sec 10 617 KBytes 8.00-9.00 sec 245 MBytes 2.06 Gbits/sec 11 670 KBytes 9.00-10.00 sec 234 MBytes 1.96 Gbits/sec 10 713 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - Interval Transfer Bandwidth Retr 0.00-10.00 sec 2.17 GBytes 1.86 Gbits/sec 207 sender 0.00-10.00 sec 2.16 GBytes 1.86 Gbits/sec receiver

Hulp krijgen is eenvoudig

Typ het volgende commando in:
$ man iperf
$ man iperf3
$ iperf --help
$ iperf3 --help

Server or Client: -p, --port # server port to listen on/connect to -f, --format format to report: Kbits, Mbits, Gbits, Tbits -i, --interval # seconds between periodic throughput reports -F, --file name xmit/recv the specified file -A, --affinity n/n,m set CPU affinity -B, --bind <host> bind to the interface associated with the address <host> -V, --verbose more detailed output -J, --json output in JSON format --logfile f send output to a log file --forceflush force flushing output at every interval -d, --debug emit debugging output -v, --version show version information and quit -h, --help show this message and quitServer specific: -s, --server run in server mode -D, --daemon run the server as a daemon -I, --pidfile file write PID file -1, --one-off handle one client connection then exit --rsa-private-key-path path to the RSA private key used to decrypt authentication credentials --authorized-users-path path to the configuration file containing user credentialsClient specific: -c, --client <host> run in client mode, connecting to <host> --sctp use SCTP rather than TCP -X, --xbind <name> bind SCTP association to links --nstreams # number of SCTP streams -u, --udp use UDP rather than TCP --connect-timeout # timeout for control connection setup (ms) -b, --bitrate # target bitrate in bits/sec (0 for unlimited) (default 1 Mbit/sec for UDP, unlimited for TCP) (optional slash and packet count for burst mode) --pacing-timer # set the timing for pacing, in microseconds (default 1000) --fq-rate # enable fair-queuing based socket pacing in bits/sec (Linux only) -t, --time # time in seconds to transmit for (default 10 secs) -n, --bytes # number of bytes to transmit (instead of -t) -k, --blockcount # number of blocks (packets) to transmit (instead of -t or -n) -l, --length # length of buffer to read or write (default 128 KB for TCP, dynamic or 1460 for UDP) --cport <port> bind to a specific client port (TCP and UDP, default: ephemeral port) -P, --parallel # number of parallel client streams to run -R, --reverse run in reverse mode (server sends, client receives) --bidir run in bidirectional mode. Client and server send and receive data. -w, --window # set window size / socket buffer size -C, --congestion <algo> set TCP congestion control algorithm (Linux and FreeBSD only) -M, --set-mss # set TCP/SCTP maximum segment size (MTU - 40 bytes) -N, --no-delay set TCP/SCTP no delay, disabling Nagle's Algorithm -4, --version4 only use IPv4 -6, --version6 only use IPv6 -S, --tos N set the IP type of service, 0-255. The usual prefixes for octal and hex can be used, i.e. 52, 064 and 0x34 all specify the same value. --dscp N or --dscp val set the IP dscp value, either 0-63 or symbolic. Numeric values can be specified in decimal, octal and hex (see --tos above). -L, --flowlabel N set the IPv6 flow label (only supported on Linux) -Z, --zerocopy use a 'zero copy' method of sending data -O, --omit N omit the first n seconds -T, --title str prefix every output line with this string --extra-data str data string to include in client and server JSON --get-server-output get results from server --udp-counters-64bit use 64-bit counters in UDP test packets --repeating-payload use repeating pattern in payload, instead of randomized payload (like in iperf2) --username username for authentication --rsa-public-key-path path to the RSA public key used to encrypt authentication credentials indicates options that support a K/M/G suffix for kilo-, mega-, or giga- iperf3 homepage at: https://software.es.net/iperf/Report bugs to: https://github.com/esnet/iperf

Samenvattend

Deze pagina legt uit hoe je netwerk throughput tests uitvoert tussen twee Linux of Unix servers met behulp van iperf3/iperf tool. Zie iperf documenatie en iperf3 broncode online voor meer informatie.

🐧 Ontvang de laatste tutorials over Linux, Open Source & DevOps via RSS feed of wekelijkse email nieuwsbrief.
🐧 5 reacties tot nu toe… voeg er een toe ↓

.

Categorie Lijst van Unix- en Linux-commando’s
Bestandsbeheer cat
Firewall Alpine Awall – CentOS 8 – OpenSUSE – RHEL 8 – Ubuntu 16.04 – Ubuntu 18.04 – Ubuntu 20.04
Network Utilities dig – host – ip – nmap
OpenVPN CentOS 7 – CentOS 8 – Debian 10 – Debian 8/9 – Ubuntu 18.04 – Ubuntu 20.04
Package Manager apk – apt
Processen Beheer bg – chroot – cron – disown – fg – jobs – killall – kill – pidof – pstree – pwdx – tijd
Onderzoek grep – whereis – welke
Gebruikersinformatie groepen – id – lastcomm – last – lid/libuser-lid – lognaam – leden – gebruikers – whoami – wie – w
WireGuard VPN Alpine – CentOS 8 – Debian 10 – Firewall – Ubuntu 20.04

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *