openlab-aux / orgafoo

Organisationelles des OpenLab Augsburg
15 stars 3 forks source link

Schöne Statistik aus dem Speedtest generieren #257

Closed Profpatsch closed 3 years ago

Profpatsch commented 7 years ago

Daten zur aktuellen Geschwindigkeit im Lab sind jetzt unter http://hannswurscht.openlab.lan/speedtest.yaml verfügbar, generiert von diesem Skript.

Schauen so aus:

---
version: 0.2
date: 2017-07-08 23:57:39.440277
ping-v4: true
ping-v6: false
dns: true
download_speed: 923104
---
version: 0.2
date: 2017-07-09 00:00:48.535216
ping-v4: true
ping-v6: false
dns: true
download_speed: 3415513

Man sollte das zu einer schönen Grafik umwandeln oder so. cc @richi235

muesli commented 7 years ago

Ich waer ja fuer ne Prometheus + Grafana Instanz im Lab.

moba commented 7 years ago

Was das an Bandbreite kostet!!11 Ich würde das Intervall ein wenig runterschrauben?

Und was ist eigentlich mit IPv6 los? Vor ner Weile ging das noch.

richi235 commented 7 years ago

Mein Vorschläg wäre:

Das Datenformat kann man dabei ja gleich lassen, bei allen Datensätzen bei denen kein Speedtest stattgefunden hat, steht da dann halt einfach -1 oder nil oder kadse oder so

Profpatsch commented 7 years ago

Was das an Bandbreite kostet!!11 Ich würde das Intervall ein wenig runterschrauben?

Alle 15 Minuten 50MB? Kann ich dir sagen, sind 6.0*10⁻² Kilobyte pro Sekunde.

IPv6 ist schon seit Tagen kaputt.

muesli commented 7 years ago

@Profpatsch So funktioniert die Rechnung aber nich. Du machst einfach alle 15 Minuten das Netz mal kurz dicht, das verteilt sich ja nicht gleichmaessig.

Profpatsch commented 7 years ago

das verteilt sich ja nicht gleichmaessig.

Doch, da wir im Lab seit einigen Monaten ein QoS haben, was die Bandbreite unter Clients verteilt.

Auch: Gratulation zum erfolgreichen Bikeshedding, みんなさん. Eure Meinungen werden im Endprodukt durch Nichteinfließen gewürdigt.

moba commented 7 years ago

For the record: Ja, ich finds völlig absurd, 50MB alle 15 Minuten sinnlos durch die Leitung und das WLAN zu schaufeln, nur damit wir in der Taktung irgendwelche Zahlen sammeln die am Ende eh nichts ändern. Ob nun QoS oder nicht.

Ich sehe auch nicht wieso man das "bikeshedding" nennen will, nur um die Diskussion zu deligitimieren. Ich gehe davon aus, dass du durchaus weißt was man üblicherweise als "bikeshedding" bezeichnet.

moba commented 7 years ago

Ach um dem noch ne Zahl hinzufügen: 50MB alle 15 Minuten sind 140GB im Monat. Das ist bereits knapp die Hälfte von dem, bei dem 1&1 DSL als "Fair use" drosselt (300GB/Monat). Wir sind aktuell bei Kabel Deutschland und da ist das nicht der Fall, aber weil du das jetzt so handwavey abtust als "das sind doch keine Datenmengen"...

pRiVi commented 7 years ago

Doch, da wir im Lab seit einigen Monaten ein QoS haben, was die Bandbreite unter Clients verteilt.

Schön wärs. Bei einer dedizierten Leitung wäre das wohl möglich, da wir hier allerdings auf Kabel Deutschland festgenagelt sind ist QOS nicht möglich: Die verfügbare Datenrate, die nicht zu einer massiven Latenzerhöhung führt, liegt in den Abendstunden bei 100 KByte/sek. Alles darüber wird von Kabel Deutschland in Form von höherer Latenz geahndet.

Konkret: Wenn Du überträgst was Du bekommst, als so 3 Mbyte/sek, haste nen Latenz von 2000-3000 ms statt 20 ms. Jeder Aufruf einer Internetseite dauert Minuten. Jede weitere Datenübertragung muss sich über einige Sekunden erst hochkämpfen. SSH oder gar Telefonieren wird unbenutzbar.

Aber was haben technische Argumente schon für einen Wert wenn man was einfach haben will...

Mich lässt es in jedem Fall am Menschenverstand zweifeln, nicht zuletzt der Schaden der für die anderen Kabeldeutschlandnutzer (sinnlos, oder welche wirklichen Sinn hat das?) vernichtet wird, finde ich schon ziemlich ignorant und/oder kaltschneuzig. Aber selbst ohne dem Punkt, allgemein soviel sinnlosen Traffik zu erzeugen... Schon ne harte Nummer.

Kritikbereitschaft klingt zudem auch anders....

pRiVi commented 7 years ago

IPv6 ist schon seit Tagen kaputt.

Zum Einen hätte man mir das mal sagen können, zum anderen ist das dadurch verursacht weil beim Mo kein Internet ist und ich einen Backupweg eingerichtet habe bevor gar nichts mehr geht, der eben kein IPv6 hat.

Ich schalte das IPv6 Announcement ab, so dass wenigstens IPv4 ordentlich läuft.

Profpatsch commented 7 years ago

Was das an Bandbreite kostet!!11

Ja, ich finds völlig absurd, 50MB alle 15 Minuten sinnlos durch die Leitung und das WLAN zu schaufeln,

Also nicht ironisch, wie das !!11 vermuten ließ.

Konkret: Wenn Du überträgst was Du bekommst, als so 3 Mbyte/sek, haste nen Latenz von 2000-3000 ms statt 20 ms. Jeder Aufruf einer Internetseite dauert Minuten. Jede weitere Datenübertragung muss sich über einige Sekunden erst hochkämpfen. SSH oder gar Telefonieren wird unbenutzbar.

Danke für die tatsächlich technischen Informationen. Davon ausgehend kann man sich jetzt eine sinnvolle Lösung überlegen.

Zum Einen hätte man mir das mal sagen können

Das ist mir erst aufgefallen, als ich das Skript schon fast fertig hatte. Hatte dir aber eine SMS geschrieben, die hast du vllt. nicht gesehen.

muesli commented 7 years ago

@Profpatsch Ich seh hier keinerlei Bikeshedding. Klar kannst du relevante Kommentare ignorieren, aber wenn man kein Feedback moechte, dann kann man sich das Issue hier auch gleich sparen.

Profpatsch commented 7 years ago

Ich warte immer noch auf den ersten produktiven Kommentar (der nicht von @muesli kommt), der nicht gleichzeitig noch eine Anfeindung enthält oder derogativen Charakter hat.

Bitte.

grindhold commented 7 years ago

schwerwiegende vetos sind schwerwiegend. wuerde mir als laborant verarscht vorkommen, wenn mein workflow alle 30 / 15 minuten von einer willkuerlich erzeugten netzlast beeintraechtigt wird. und mit QoS macht der speedtest wenig sinn, weil er das ergebnis verfaelscht. wuerde das bleiben lassen. vielleicht wenn ein konkreter verdacht besteht, dass $provider zu wenig liefert. aber nicht just4fun.

Profpatsch commented 7 years ago

wuerde mir als laborant verarscht vorkommen

Das ist der Grund für die Gschichte, dass es so arbiträr instabil ist, sowohl von den Bandbreiten, als auch von der überhauptigen Funktionsweise (ja, das ist ein Wort. :)). Man kann die Tests beliebig verteilen, auch z.B. nur 10 Mb runterladen, wenn 50 Mb zu viel sind.

Vermutlich wäre Pingzeit sogar noch sinnvoller als Bandbreite testen.

richi235 commented 7 years ago

Vermutlich wäre Pingzeit sogar noch sinnvoller als Bandbreite testen.

Also Pingzeit sollte man auf jeden fall machen und vlt. jede stunde nen speed test. Den könnte man dann auch anderst angehn im sinn von. Einfach mal 10 sec laden und kucken wie viel man in der zeit kriegt. Dann ist die Einschränkung nur 10 sec lang, statt bei langsamen interent dann 5 Minuten.

@muesli Wie würden den Prometheus und Grafna das machen?

TCP Hintergrundwissen

Hier noch ein bischen TCP Hintergrundwissen um einzuschätzen wie gravierend der impakt von so einem Speedtest wirklich ist.

TCP ist grundsätzlich so designt das verschiedene TCP Connections fair zueinander sind [1][2]. Das heißt wenn da schon 3 andere Verbindungen vollgas laden und dann der Speedtest dazu kommt wird die Bandbreite (nach einer gewissen Konvergenz zeit) fair aufgeteilt.

In der anderen Situation, wenn der Speedtest gerade läuft und während dessen eine TCP Connection Daten übertragen möchte, einigen auch diese beiden sich nach einer kurzen Konvergenz Zeit fair. Es ist also nicht so das der Speedtest grundsätzlich "die leitung für alle dicht macht".

Wie genau das jetzt mit einem UDP Stream wechselwirkt weiß ich tbh nicht, aber ich denke auch hoher UDP traffic wird dazu führen das Pakete der TCP Connection timeouten und TCP dann drosselt. Also Bandbreite für UDP "freigibt"

Konvergenzzeiten

Noch ein Wort zu den Konvergenzzeiten. Die liegen normal so um die 1-2 Sekunden. Genaue Werte hängen von der RTO mit der der Kernel diese TCP verbindung abschätzt ab. (Retransmission Timeout, also ab wann ein TCP Paket Timeoutet)[2]. Durchschnitt sind da so Werte um die 250 ms, das hängt aber von der Round trip time dieser TCP verbindung ab. etc. etc.

Quellen

[1] https://en.wikipedia.org/wiki/Additive_increase/multiplicative_decrease [2] Richard Stevens, TCP/IP illustrated Volume 1

momo-aux commented 7 years ago

Warum nicht einfach alle 12 Stunden 1 MB ziehen und die Zeit messen in der es gezogen wird? Das reicht doch völlig um mal nen Richtwert zu haben.

Profpatsch commented 7 years ago

Naja, bei nem Mb hat die Verbindung gar keine Zeit, sich überhaupt einzupendeln. Da bin ich bei 10Mb schon nicht sicher, ob das bei >2Mb/s Bandbreite ausreicht. Und curl macht ­∅.

richi235 commented 7 years ago

Oh wow, ich hab gerade realisiert das der Begriff "Durchschnitt" dieses Symbol beschreibt und daher kommt (oder umgekehrt). mind=blown

pRiVi commented 7 years ago

TCP Hintergrundwissen

Völlig unrelevante Informationen. Einfach nochmal lesen was geschrieben wurde, und neu versuchen.

muesli commented 7 years ago

@richi235 Prometheus / Grafana sind nur Stat-keeping & Visualisierung. Woher die Daten kommen is relativ egal - also z.B. @Profpatsch's Tool.

Kann z.B. so aussehen: prometheus

pRiVi commented 7 years ago

Das einzige was wohl sinnvoll wäre ist eine Traffikstatistik zuzüglich Latenz (= Ping), was beispielsweise Smokeping wunderbar macht.

http://oss.oetiker.ch/smokeping/

Da kann man dann sehen wie viel Traffik bei welcher Latenz durchging, nur diese Kombination hat bei Kabel Deutschland eine Aussagekraft.

Diese Messmethode hat keine negativen Auswirkungen auf den Betrieb noch erzeugt es terrabyteweise Bullshittraffik.

Traffikstatistik gibts hier (Nur aus dem Labnetz abrufbar): http://10.11.91.2/out.png Smokeping gabs mal hier, müsste man mal wieder reaktivieren (Nur aus dem Labnetz abrufbar): http://10.11.64.242/cgi-bin/smokeping.cgi?target=OpenLAB.pRiVi

momo-aux commented 7 years ago

Die Verbindung muss sich nicht einpendeln, es geht darum eine Übersicht zu bekommen. Mach doch erstmal 1MB pro 12 Stunden und schau ob was sinnvolles raus kommt. Wenn das nicht der Fall ist, dann kann man immer noch umstellen.

1MB pro 12 Stunden stört nicht und wer weiß, vielleicht reichts ja.

Profpatsch commented 7 years ago

Ich verweise auf https://github.com/openlab-aux/orgafoo/issues/258, damit gab es eine genaue Eingrenzung, ab wann das Internet seit gestern nicht mehr ging. Genau das ist das Ziel der Übung.

Ich werde die Dateigröße mal auf 5MB/15min runterstellen, ich denke, damit können alle leben?

Profpatsch commented 7 years ago

Ich kann das Outputformat übrigens trivial auf was anderes umstellen, wenn gewünscht. Es sollte halt „streambar“ sein (aka: sich an eine Datei konkatenieren lassen) und möglichst auch menschenlesbar.

robinkaranu commented 3 years ago

Haben nun "gutes" Internet, WONTFIX.