Netzwerk Perfomance: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 37: | Zeile 37: | ||
*Kernel Buffer | *Kernel Buffer | ||
*Netwerkschicht (IP,TCP,UDP) | *Netwerkschicht (IP,TCP,UDP) | ||
| + | =Erster Perfomance Test mit Iperf3= | ||
| + | ==Server== | ||
| + | *iperf3 -s -p 1234 | ||
| + | <pre> | ||
| + | ----------------------------------------------------------- | ||
| + | Server listening on 1234 | ||
| + | ----------------------------------------------------------- | ||
| + | Accepted connection from 10.81.4.8, port 43630 | ||
| + | [ 5] local 10.81.1.79 port 1234 connected to 10.81.4.8 port 43632 | ||
| + | [ ID] Interval Transfer Bandwidth | ||
| + | [ 5] 0.00-1.00 sec 2.35 GBytes 20.2 Gbits/sec | ||
| + | [ 5] 1.00-2.00 sec 2.86 GBytes 24.6 Gbits/sec | ||
| + | [ 5] 2.00-3.00 sec 2.83 GBytes 24.3 Gbits/sec | ||
| + | [ 5] 3.00-4.00 sec 2.80 GBytes 24.0 Gbits/sec | ||
| + | [ 5] 4.00-5.00 sec 2.86 GBytes 24.6 Gbits/sec | ||
| + | [ 5] 5.00-6.00 sec 2.79 GBytes 24.0 Gbits/sec | ||
| + | [ 5] 6.00-7.00 sec 2.88 GBytes 24.8 Gbits/sec | ||
| + | [ 5] 7.00-8.00 sec 2.87 GBytes 24.6 Gbits/sec | ||
| + | [ 5] 8.00-9.00 sec 2.72 GBytes 23.4 Gbits/sec | ||
| + | [ 5] 9.00-10.00 sec 2.84 GBytes 24.4 Gbits/sec | ||
| + | [ 5] 10.00-10.04 sec 106 MBytes 22.7 Gbits/sec | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | [ ID] Interval Transfer Bandwidth | ||
| + | [ 5] 0.00-10.04 sec 0.00 Bytes 0.00 bits/sec sender | ||
| + | [ 5] 0.00-10.04 sec 27.9 GBytes 23.9 Gbits/sec receiver | ||
| + | ----------------------------------------------------------- | ||
| + | Server listening on 1234 | ||
| + | ----------------------------------------------------------- | ||
| + | </pre> | ||
| + | ==Client== | ||
| + | *iperf3 -c 10.81.1.79 -p 1234 | ||
| + | <pre> | ||
| + | Connecting to host 10.81.1.79, port 1234 | ||
| + | [ 4] local 10.81.4.8 port 43632 connected to 10.81.1.79 port 1234 | ||
| + | [ ID] Interval Transfer Bandwidth Retr Cwnd | ||
| + | [ 4] 0.00-1.00 sec 2.47 GBytes 21.2 Gbits/sec 0 3.11 MBytes | ||
| + | [ 4] 1.00-2.00 sec 2.87 GBytes 24.6 Gbits/sec 0 3.11 MBytes | ||
| + | [ 4] 2.00-3.00 sec 2.82 GBytes 24.2 Gbits/sec 0 3.11 MBytes | ||
| + | [ 4] 3.00-4.00 sec 2.80 GBytes 24.0 Gbits/sec 0 3.11 MBytes | ||
| + | [ 4] 4.00-5.00 sec 2.87 GBytes 24.7 Gbits/sec 0 3.11 MBytes | ||
| + | [ 4] 5.00-6.00 sec 2.78 GBytes 23.9 Gbits/sec 0 3.11 MBytes | ||
| + | [ 4] 6.00-7.00 sec 2.90 GBytes 24.9 Gbits/sec 0 3.11 MBytes | ||
| + | [ 4] 7.00-8.00 sec 2.85 GBytes 24.5 Gbits/sec 0 3.11 MBytes | ||
| + | [ 4] 8.00-9.00 sec 2.72 GBytes 23.4 Gbits/sec 0 3.11 MBytes | ||
| + | [ 4] 9.00-10.00 sec 2.84 GBytes 24.4 Gbits/sec 0 3.11 MBytes | ||
| + | - - - - - - - - - - - - - - - - - - - - - - - - - | ||
| + | [ ID] Interval Transfer Bandwidth Retr | ||
| + | [ 4] 0.00-10.00 sec 27.9 GBytes 24.0 Gbits/sec 0 sender | ||
| + | [ 4] 0.00-10.00 sec 27.9 GBytes 24.0 Gbits/sec receiver | ||
| + | |||
| + | iperf Done. | ||
| + | </pre> | ||
=Quelle= | =Quelle= | ||
*https://i0.wp.com/opensourceforu.com/wp-content/uploads/2016/08/Figure-1-Data-receiving- | *https://i0.wp.com/opensourceforu.com/wp-content/uploads/2016/08/Figure-1-Data-receiving- | ||
process.jpg | process.jpg | ||
Version vom 16. November 2019, 15:43 Uhr
Intention
- Router, Switche, Kabel wurden verbessert
- Microprozessoren hinken hinten dran
- Letztendlich muss das Betriebssystem die Daten verarbeiten
- Darum ist ein präzises Anpassen des Betriebssystem wichtig
Wie verarbeitet das Betriebssystem die Daten
- Daten werden von der Netzwerkkarte aufgenommen
- Danach werden sie im Ring Buffer für den Empfang (RX) gespeichert
- Es gibt auch einen Ring Buffer für das Senden (TX)
- Wenn der Kernel auf das Paket zugreifen kann löst der Treiber einen Software IRQ aus
- Dieser veranlasst einen Datenzugriff (DMA)
- Der Kernel bekommt die Daten in Datenstruktur sk_buff um das Paket bis zur MTU zu halten.
- Wenn die Kernel Buffer gefüllt sind gehen die Daten an die IP/TCP oder UDP Schicht.
- Früher löste ein Hard Interupt das Senden aus.
- Dies wurde durch den Soft Interrupt ersetzt.
- Dieser wird verwaltet von der New API.
Tools zum Monitoring und Diagnose des Systems
- ip
- netstat
- ss
- ethtool
Benchmarkprogramme vor dem Tunen
- netperf
- iperf
- iperf3
Grundlegendes vor Tunning
- Jedes System ist unterschiedlich (CPU,MEM,NIC,OS)
- Es gibt keine Universallösung
- Man braucht gute Kenntnisse des Systems
- Man muss den Flaschenhals finden
Pakete werden verworfen
Das Problem kann an folgenden Punkten liegen:
- NIC
- SOFT IRQ
- Kernel Buffer
- Netwerkschicht (IP,TCP,UDP)
Erster Perfomance Test mit Iperf3
Server
- iperf3 -s -p 1234
----------------------------------------------------------- Server listening on 1234 ----------------------------------------------------------- Accepted connection from 10.81.4.8, port 43630 [ 5] local 10.81.1.79 port 1234 connected to 10.81.4.8 port 43632 [ ID] Interval Transfer Bandwidth [ 5] 0.00-1.00 sec 2.35 GBytes 20.2 Gbits/sec [ 5] 1.00-2.00 sec 2.86 GBytes 24.6 Gbits/sec [ 5] 2.00-3.00 sec 2.83 GBytes 24.3 Gbits/sec [ 5] 3.00-4.00 sec 2.80 GBytes 24.0 Gbits/sec [ 5] 4.00-5.00 sec 2.86 GBytes 24.6 Gbits/sec [ 5] 5.00-6.00 sec 2.79 GBytes 24.0 Gbits/sec [ 5] 6.00-7.00 sec 2.88 GBytes 24.8 Gbits/sec [ 5] 7.00-8.00 sec 2.87 GBytes 24.6 Gbits/sec [ 5] 8.00-9.00 sec 2.72 GBytes 23.4 Gbits/sec [ 5] 9.00-10.00 sec 2.84 GBytes 24.4 Gbits/sec [ 5] 10.00-10.04 sec 106 MBytes 22.7 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 5] 0.00-10.04 sec 0.00 Bytes 0.00 bits/sec sender [ 5] 0.00-10.04 sec 27.9 GBytes 23.9 Gbits/sec receiver ----------------------------------------------------------- Server listening on 1234 -----------------------------------------------------------
Client
- iperf3 -c 10.81.1.79 -p 1234
Connecting to host 10.81.1.79, port 1234 [ 4] local 10.81.4.8 port 43632 connected to 10.81.1.79 port 1234 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 2.47 GBytes 21.2 Gbits/sec 0 3.11 MBytes [ 4] 1.00-2.00 sec 2.87 GBytes 24.6 Gbits/sec 0 3.11 MBytes [ 4] 2.00-3.00 sec 2.82 GBytes 24.2 Gbits/sec 0 3.11 MBytes [ 4] 3.00-4.00 sec 2.80 GBytes 24.0 Gbits/sec 0 3.11 MBytes [ 4] 4.00-5.00 sec 2.87 GBytes 24.7 Gbits/sec 0 3.11 MBytes [ 4] 5.00-6.00 sec 2.78 GBytes 23.9 Gbits/sec 0 3.11 MBytes [ 4] 6.00-7.00 sec 2.90 GBytes 24.9 Gbits/sec 0 3.11 MBytes [ 4] 7.00-8.00 sec 2.85 GBytes 24.5 Gbits/sec 0 3.11 MBytes [ 4] 8.00-9.00 sec 2.72 GBytes 23.4 Gbits/sec 0 3.11 MBytes [ 4] 9.00-10.00 sec 2.84 GBytes 24.4 Gbits/sec 0 3.11 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 27.9 GBytes 24.0 Gbits/sec 0 sender [ 4] 0.00-10.00 sec 27.9 GBytes 24.0 Gbits/sec receiver iperf Done.
Quelle
process.jpg