Netzwerk Perfomance
Version vom 16. November 2019, 15:34 Uhr von Thomas.will (Diskussion | Beiträge) (→Benchmark vor dem Tunen)
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)
Quelle
process.jpg