Auslastung des eigenen Segments ansehen

Für alle Technik-Themen bezogen auf Internet und Telefonie, die weder AVM- noch Arris-/CommScope-/Technicolor-/Compal-/Sagemcom- bzw. Hitron-Produkte betreffen. Speedprobleme werden hier lediglich thematisiert, wenn sie auf die verwendeten Geräte zurückzuführen sind (die nicht zu den o.g. Produkten zählen).
Forumsregeln
Forenregeln


Bitte gib bei der Erstellung eines Threads im Feld „Präfix“ an, ob du Kunde von Vodafone Kabel Deutschland („[VFKD]“), von Vodafone West („[VF West]“), von eazy („[eazy]“) oder von O2 über Kabel („[O2]“) bist.
Benutzeravatar
koaschten
Insider
Beiträge: 3982
Registriert: 04.06.2010, 14:21
Wohnort: Itzehoe

Re: Auslastung des eigenen Segments ansehen

Beitrag von koaschten »

hmmm ok. Also zurück ans Reißbrett. Im Moment braucht der Scan ca. 25 Sekunden. Selbst mit 25k packets nur knappe 40s.
sparkie
Kabelexperte
Beiträge: 721
Registriert: 04.09.2010, 12:35

Re: Auslastung des eigenen Segments ansehen

Beitrag von sparkie »

Hallo Auslastungsfans,

zum Vergleich beschreibe ich kurz was ich in meinem Script so mache:

Siehe auch Screenshot. Ja - ich bin eher ein Anhaenger von ASCII Grafiken :)

Ganz oben sind die eher statischen Modemwerte zu sehen, die im Regelfall nur alle Stunde gescannt werden. Wie z.B. Datum letzter Reset, Firmware Datum/Release, Power Level, Signal to Noise Ratio etc.
Bei signifikanten Aenderungen in diesem Bereich bekomme ich sofort eine Email mit entsprechendem Hinweis.

Zur Auslastung (der dynamische Teil):
Ich scanne einfach alle 8 moeglichen Frequenzen sequentiell. Das dauert in etwa 17 Sekunden. Und zeichne fuer jeden Wert eine Linie, die ihre maximale Laenge bei einem gemessenen Wert von '51285' erhaelt. Warum der Wert '51285'? Es ist einfach der hoechste jemals hier gemessene Zahlenwert. Zum Errechnen der 'Auslastung' beruecksichtige ich natuerlich nur die 4 der 8 tatsaechlich vom Modem verwendeten Frequenzen (sind mit 'in use' gekennzeichnet). Und addiere hierzu einfach die 4 Messwerte und teile die Summe durch den Maximalwert von 4 * 51285. Das hat sich in Praxis eigentlich sehr gut bewaehrt. In den eckigen Klammern rechts stehen direkt die 4 Messwerte der 4 Modemfrequenzen wie sie aus der 'dvbtraffic' Utility fallen. Danach der ping auf sipgate.de und daneben der ping auf 8.8.8.8, ganz rechts dann schliesslich der Wert fuer die 'Auslastung' in %. Ist vielleicht mathematisch nicht ganz korrekt aber fuer mich reichts :)

Achja das 'hash' Zeichen habe ich noch vergessen: Es ist eine weitere Darstellung der Auslastung. Je weiter es nach rechts wandert desto hoeher die Auslastung (z.b. um 15:09:00 ein Peak mit 91%). Das erlaubt einen schnellen Ueberblick darueber was im Segment so los ist, ohne dazu lang Zahlen vergleichen zu muessen.

Screenshot

- sparkie
Benutzeravatar
RcRaCk2k
Ehrenmitglied
Beiträge: 2402
Registriert: 20.09.2007, 10:23
Wohnort: Freilassing

Re: Auslastung des eigenen Segments ansehen

Beitrag von RcRaCk2k »

@sparkie: Darf ich dir sagen, dass du ein absoluter Freak bist? :) Deine ASCII sieht ja so derb geil aus :) Da kommst dir vor, wie in MATRIX :)

sparkie hat geschrieben:Ich scanne einfach alle 8 moeglichen Frequenzen sequentiell. Das dauert in etwa 17 Sekunden.
Sprich 2 Sekunden für die Auswertung pro Frequenz.

@sparkie: Ich finde es ja voll geil, wie du mit awk umgehen kannst. Da hast du von mir den tiefsten Respekt! Vielleicht kannst du mir kurz was erklären...

Du macht einen Handle zu einer Binary auf:

Code: Alles auswählen

CMD = "dvbtraffic -a " ADAPTER
while (CMD | getline > 0) {
....
}
close(CMD)
dvbtraffic ist aber ein Programm, das immer Output gibt - unendlich... Durch welchen Befehl steigt dein Programm dann aus der Schleife aus und schließt den Handle? Ich verstehe das nicht. Ist die Funktion "getline" dafür zuständig, und wenn ja, wie verhält sich diese? Bin bei AWK noch vollkommener Anfänger.
AWK Documentation hat geschrieben:The getline command is used in several different ways and should not be used by beginners.
:)
Anschlüsse: 3x Internet&Phone 100 MBits, 2x Internet&Phone 26MBit, 1x Internet&Phone 32 MBits Telefon-Anschluss: sipgate.de, dus.net, easybell.de, personal-voip.de
Router: Linux x64 Router, Interne Verkablung: Patchpannel, CAT 7, Netzwerkdosen, CAT 5e, wirelessLAN

Links:
- Kabel-Deutschland und die Geschwindigkeit des Internet-Zugangs
Benutzeravatar
koaschten
Insider
Beiträge: 3982
Registriert: 04.06.2010, 14:21
Wohnort: Itzehoe

Re: Auslastung des eigenen Segments ansehen

Beitrag von koaschten »

Sooo... rrd's neu angelegt nach Schema

Code: Alles auswählen

koaschten@ubuntu:~/rrdtest$ rrdtool create 546000000.rrd -s 60 DS:bandwidth:GAUGE:60:0:51000000 RRA:MAX:0:5:288 RRA:AVERAGE:0:5:288 RRA:MIN:0:5:288 RRA:MAX:0:30:336 RRA:AVERAGE:0:30:336 RRA:MIN:0:30:336 RRA:MAX:0:120:360 RRA:AVERAGE:0:120:360 RRA:MIN:0:120:360 RRA:MAX:0:1440:365 RRA:AVERAGE:0:1440:365 RRA:MIN:0:1440:365
nun heisst es abwarten und den cronjob minütlich machen lassen und dann mal grafik bauen.
Zuletzt geändert von koaschten am 16.06.2011, 18:37, insgesamt 2-mal geändert.
sparkie
Kabelexperte
Beiträge: 721
Registriert: 04.09.2010, 12:35

Re: Auslastung des eigenen Segments ansehen

Beitrag von sparkie »

RcRaCk2k hat geschrieben:Deine ASCII sieht ja so derb geil aus :) Da kommst dir vor, wie in MATRIX :)
sagen wir mal so: wenn es prinzipiell auch auf einem uralten seriellen Terminal laeuft - dann ist es gut fuer mich :grin:

ausserdem bin ich oft im Ausland unterwegs. Wenn ich mich dann per ssh auf meinen Kisten einlogge, kann ich selbst mit der allerwindigsten GPRS Verbindung noch problemlos die Diagramme anschauen - Funktionstest bestanden :)

- sparkie
Benutzeravatar
RcRaCk2k
Ehrenmitglied
Beiträge: 2402
Registriert: 20.09.2007, 10:23
Wohnort: Freilassing

Re: Auslastung des eigenen Segments ansehen

Beitrag von RcRaCk2k »

@koaschten: Also du machst jetzt
  1. 5 Minunten AVG/MIN/MAX-Berechnung mit 24 Stunden Aufzeichnung (Backlog)
  2. 30 Minuten AVG/MIN/MAX-Berechnung mit 7 Tagen Aufzeichnung (Backlog)
  3. 2 Stunden AVG/MIN/MAX-Berechnung mit 30 Tagen Aufzeichnung (Backlog)
  4. 24 Stunden AVG/MIN/MAX-Berechnung mit 365 Tagen Aufzeichnung (Backlog)
Das hört sich sinnvoll an.. Werde ich bei mir auch so einbauen :)
Anschlüsse: 3x Internet&Phone 100 MBits, 2x Internet&Phone 26MBit, 1x Internet&Phone 32 MBits Telefon-Anschluss: sipgate.de, dus.net, easybell.de, personal-voip.de
Router: Linux x64 Router, Interne Verkablung: Patchpannel, CAT 7, Netzwerkdosen, CAT 5e, wirelessLAN

Links:
- Kabel-Deutschland und die Geschwindigkeit des Internet-Zugangs
Benutzeravatar
koaschten
Insider
Beiträge: 3982
Registriert: 04.06.2010, 14:21
Wohnort: Itzehoe

Re: Auslastung des eigenen Segments ansehen

Beitrag von koaschten »

hmmm irgendwie versagt nun mein Grafik erstell Script? :(

Code: Alles auswählen

#!/bin/sh

freqs="546000000 554000000 562000000 570000000 578000000 586000000 594000000 602000000"
intervals="day week month year"
path="/home/koaschten/rrdtest/"


for interval in $intervals
  do
  
  for freq in $freqs
    do
      rrdtool graph "$path$freq-$interval.png" DEF:Bandwidth=$path$freq.rrd:bandwidth:AVERAGE LINE1:Bandwidth#32CD32 --start -1$interval -t "24937 Flensburg | Segment 601 | $freq QAM256 6952kHz" -h 300 -w 800 AREA:Bandwidth#32CD32:Bandwidth "GPRINT:Bandwidth:MAX:  Max\\: %5.1lf %S" "GPRINT:Bandwidth:AVERAGE:  Avg\\: %5.1lf %S" "GPRINT:Bandwidth:MIN:  Min\\: %5.1lf %S" "GPRINT:Bandwidth:LAST:  Last\\: %5.1lf %S" -l 0
    done
  done
Sieht grad wer den fehler?

Symptom? Es wird GAR NICHTS geplottet.

edit:
hmmm nen

Code: Alles auswählen

rrdtool fetch /home/koaschten/rrdtest/554000000.rrd AVERAGE -1day
liefert mir ne leere RoundRobinDB??!?
sparkie
Kabelexperte
Beiträge: 721
Registriert: 04.09.2010, 12:35

Re: Auslastung des eigenen Segments ansehen

Beitrag von sparkie »

RcRaCk2k hat geschrieben: Sprich 2 Sekunden für die Auswertung pro Frequenz.
genau.
Du macht einen Handle zu einer Binary auf:

Code: Alles auswählen

CMD = "dvbtraffic -a " ADAPTER
while (CMD | getline > 0) {
....
}
close(CMD)
dvbtraffic ist aber ein Programm, das immer Output gibt - unendlich... Durch welchen Befehl steigt dein Programm dann aus der Schleife aus und schließt den Handle?
oh - sorry fuer die Verwirrung :o
Das hat mich natuerlich auch genervt, dass der 'dvbtraffic' von Haus aus nur Endlos Loops kann. Ich habe deswegen in den 'dvbtraffic' halt noch eine Option eingebaut, damit er sich nach einem Durchlauf beendet. Minipatch:

Code: Alles auswählen

--- dvbtraffic.c.org    2011-01-31 06:08:51.000000000 +0100
+++ dvbtraffic.c        2011-02-21 19:11:43.000000000 +0100
@@ -25,6 +25,7 @@
                "Options:\n"
                "       -a N    use dvb adapter N\n"
                "       -d N    use demux N\n"
+               "       -o      one shot mode\n"
                "       -h      display this help\n");
 }
 
@@ -35,8 +36,9 @@
        char *search = NULL;
        int fd, ffd, packets = 0;
        int opt;
+       int one_shot_mode = 0;
 
-       while ((opt = getopt(argc, argv, "a:d:hs:")) != -1) {
+       while ((opt = getopt(argc, argv, "a:d:hos:")) != -1) {
                switch (opt) {
                case 'a':
                        adapter = atoi(optarg);
@@ -47,6 +49,9 @@
                case 'h':
                        usage(stdout);
                        exit(0);
+               case 'o':
+                       ++one_shot_mode;
+                       break;
                case 's':
                        search = strdup(optarg);
                        break;
@@ -138,6 +143,7 @@
                                        }
                                        pidt[_pid] = 0;
                                }
+if (one_shot_mode) break;
                                printf("-PID--FREQ-----BANDWIDTH-BANDWIDTH-\n");
                                startt = now;
                        }
Ich verstehe das nicht. Ist die Funktion "getline" dafür zuständig, und wenn ja, wie verhält sich diese?
ich denke damit hat sich die Frage geklaert? Das getline ist nichts Besonderes, es liest einfach bis EOF. Und das EOF kommt jetzt eben durch die neue Option :)

ich habe mein Script uebrigens noch weiter bearbeitet. Ich kann es gerne irgendwo hinladen. Aber dieses Forum erlaubt ja leider keine Anhaenge.

- sparkie
Benutzeravatar
koaschten
Insider
Beiträge: 3982
Registriert: 04.06.2010, 14:21
Wohnort: Itzehoe

Re: Auslastung des eigenen Segments ansehen

Beitrag von koaschten »

sparkie hat geschrieben: Das hat mich natuerlich immer schon genervt, dass der 'dvbtraffic' von Haus aus nur Endlos Loops kann. Ich habe deswegen in den 'dvbtraffic' halt noch eine Option eingebaut, damit er sich nach einem Durchlauf beendet. Minipatch:
Vermutlich dumme Frage, warum nimmst du dann nicht einfach dvbsnoop?
sparkie
Kabelexperte
Beiträge: 721
Registriert: 04.09.2010, 12:35

Re: Auslastung des eigenen Segments ansehen

Beitrag von sparkie »

koaschten hat geschrieben: Vermutlich dumme Frage, warum nimmst du dann nicht einfach dvbsnoop?
weil ich das gar nicht kannte - zumindest habe ich das irgendwie nicht wahrgenommen, dass in diesem Forum staendig die Rede davon ist :grin: - danke fuer den Hinweis :musik: