Bandbreitenmessung in der Konsole

Man weiß mal wieder nicht, wieso der Download so lange dauert und man würde gern nachsehen was los ist. Mal abgesehen von der Fremdwirkung aka „Freundin beim YouTube quälen erwischen“, kann natürlich auch die Leitung gestört sein.

Also erstmal checken, ob man überhaupt eine Chance hat

Ab hier sind wir ROOT , da wir nur so an die nötigen Informationen ran kommen.

Mit iotop können wir erstmal nachsehen ob unser Rechner nicht durch IO ausgelastet ist:

Total DISK READ :       0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
 3629 be/4 root        0.00 B/s    0.00 B/s  0.00 %  2.32 % [kworker/0:0]
  262 be/4 root        0.00 B/s    0.00 B/s  0.00 %  2.30 % [kworker/2:2]
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd --switched-root --system --deserialize 24
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
 2052 be/4 marius      0.00 B/s    0.00 B/s  0.00 %  0.00 % nautilus -n [gdbus]
    5 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]

Wie man leicht erkennen, hatte ich bei meinem Aufruf keine IO irgendeiner Art auf dem Laptop. Sehr gut so, CHECK.

Als nächstes prüfen wir mal die Leitung ins Netz mit MTR:

# mtr --report-wide bloggt-in-braunschweig.de
 Start: Thu Sep  8 17:38:16 2016
 HOST: warrior                  Loss%   Snt   Last   Avg  Best  Wrst StDev
 1.|-- fritz.box                 0.0%    10   18.6  16.8   3.2  20.8   4.8
 2.|-- 217.0.119.85              0.0%    10   18.5  19.5  17.8  27.3   2.8
 3.|-- 217.0.65.254              0.0%    10   21.5  18.5  17.4  21.5   1.1
 4.|-- 217.239.44.22             0.0%    10   25.6  27.7  23.3  54.6   9.6
 5.|-- cr01.h.as24679.net        0.0%    10   45.0  36.8  34.5  45.0   3.3
 6.|-- ar13.h.as24679.net        0.0%    10   64.1  61.7  34.9 144.7  31.9
 7.|-- bloggt-in-braunschweig.de 0.0%    10   34.3  34.8  34.1  35.7   0.3

Ok, die Leitung raus ist auch ok, kein Paketloss .. CHECK

Die billigste Bandbreitenmessung schlechthin: Mit wget eine große Datei abholen.

BEENDET --2016-09-08 17:47:47--
Verstrichene Zeit: 2,9s
Geholt: 7 Dateien, 121K in 0,1s (1,06 MB/s)

Am Ende des Wget-Aufrufs bekommt man die Geschwindigkeit angezeigt. (Ja, das WLAN im Hof ist nicht das schnellste 🙂 ) Wenn man jetzt eine große Datei, sagen wir mal 100MB holt, hat man ein belastbares Ergebnis. Das habe ich jetzt natürlich nicht gemacht 🙂

Alle mir bekannten Tools, und das sind nicht viele, nutzen auch nur wget mit einigen Testservern aus. Aber Bandbreite kann man ja auch anders messen .. z.B. mit bmon !

Was geht ab!

Deutlich genauer kann bmon anzeigen, wieviel Bandbreite auf welchem Interface gerade genutzt wird:

Darstellung eines bmon fensters

bmon zeigt neben den einzelnen Interfacen auch Angaben zu QOS Einstellungen aka Trafficshaping auch Statistiken für die aktuelle Werte der Netzwerkkarten an ( Taste i ). Für die Konsole ist das eine sehr praktische Zusammenfassung. Ausgewachsene Masochisten werden allerdings ifconfig auswerten wollen, daß uns diese Daten auch gibt (sortof 😀 ) :  watch -n 0,5 „ifconfig “

[root@eve marius]# ifconfig
enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.44  netmask 255.255.0.0  broadcast 192.168.255.255
        inet6 fe80::4216:7eff:fe24:a01  prefixlen 64  scopeid 0x20<link>
        ether 51:23:09:1a:44:16  txqueuelen 1000  (Ethernet)
        RX packets 2083577  bytes 2706797719 (2.5 GiB)
        RX errors 0  dropped 351  overruns 0  frame 0
        TX packets 1243333  bytes 218434352 (208.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Lokale Schleife)
        RX packets 775  bytes 42829 (41.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 775  bytes 42829 (41.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 51:23:09:1a:44:16  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Wenn man nun selbst grade nichts wissentlich zieht und die Bandbreite trotzdem hoch ist, wird man auf netstat oder iotop ausweichen müssen um den Täter zu ermitteln. Schauen wir uns netstat mal an :

[root@warrior marius]# netstat -lnap | grep -i verbunden  | grep -v unix    
tcp        0      0 192.168.0.103:51438     192.0.78.23:443         VERBUNDEN   3396/firefox        
tcp        0      0 192.168.0.103:48760     192.168.0.34:22         VERBUNDEN   3970/ssh            
tcp        0      0 192.168.0.103:41712     54.149.28.204:443       VERBUNDEN   3396/firefox        
tcp6       0      0 192.168.0.103:35104     83.246.80.153:5222      VERBUNDEN   2028/java

Mit der Anzeige sehen wir, welche zwei Rechner mit welchem Programm grade Daten austauschen. Wenn in Spalte 2 und 3 statt 0 etwas großes drin steht, dann geht da datenmäßig grade richtig was ab, denn das sind die Sende- und Empfangsqueues der Verbindung. Das sind kleine Puffer für Daten, die nicht schnell genug geschrieben oder gelesen wurden.

iotop wird uns dagegen verraten, wer grade wieviel IO macht und Netzwerkverkehr ist auch IO 🙂  So oder so, wir kriegen raus was da läuft.

Im nächsten Artikel geht es dann um weitere Netzwerktools, wie Iptraf, ifstat,vnstat usw..