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.
derdigge
Newbie
Beiträge: 12
Registriert: 04.01.2014, 09:15

Re: Auslastung des eigenen Segments ansehen

Beitrag von derdigge »

Also openwrts integriertes rrdtool ist zu alt für diese Mittelwertberechnung.
Ich habe nun durch das Spicken bei euch beiden ein saberen chart, so wie er sein soll.

Mit diesem Script ist eine gute Auswertung unter openwrt möglich. Ich habe dazu einen usbstick gemountet.
Es ist nicht unbedingt nötig, da die Show ca 1,5mb an Flash belegen würde. Man kann die auch gut in den Ram verlagern.
Die rrds können auf dem Flash liegen (600kb) und den Rest im /tmp, also ram.

Es ist natürlich viel zusammengespickt hier aber es ist ein File welches in Verbindung mit dem Sundtek stick die Sache schlank genug über die Bühne bringt
um den Router nicht übermäßig zu beeinflussen.

tools insallieren:
opkg update
opkg install rrdtool rrdtool1 coreutils-timeout

Code: Alles auswählen

#!/bin/sh
# Kann im Flash liegen ~ 600kb
rrdpath="/root/rrd/table"
# Sollte im Ram liegen da diese recht Groß werden und immer neu erzeugt werden können.
pngpath="/tmp/png"

frequenzen="546000000 554000000 562000000 570000000 578000000 586000000 594000000 602000000"
TIMES="end-1d end-1w end-4w end-1y"

create_rrd () {
	[ -e $rrdpath ] || mkdir -p $rrdpath
	[ -e $pngpath ] || mkdir -p $pngpath
	for freq in $frequenzen; do
		if [ ! -e $rrdpath/$freq.rrd ];then
		    rrdtool create $rrdpath/$freq.rrd --step 60 \
		    DS:bandwidth:GAUGE:105:0:U \
		    RRA:MIN:0.5:5:288 \
		    RRA:MIN:0.5:30:336 \
		    RRA:MIN:0.5:120:372 \
		    RRA:MIN:0.5:1440:366 \
		    RRA:MIN:0.5:2880:732 \
		    RRA:MAX:0.5:5:288 \
		    RRA:MAX:0.5:30:336 \
		    RRA:MAX:0.5:120:372 \
		    RRA:MAX:0.5:1440:366 \
		    RRA:MAX:0.5:2880:732 \
		    RRA:AVERAGE:0.5:5:288 \
		    RRA:AVERAGE:0.5:30:336 \
		    RRA:AVERAGE:0.5:120:372 \
		    RRA:AVERAGE:0.5:1440:366 \
		    RRA:AVERAGE:0.5:2880:732 \
		    RRA:LAST:0.5:5:288 \
		    RRA:LAST:0.5:30:336 \
		    RRA:LAST:0.5:120:372 \
		    RRA:LAST:0.5:1440:366 \
		    RRA:LAST:0.5:2880:732
		fi
	done
}

create_png () {
	for time in $TIMES;do
		rrdtool graph $pngpath/combined_$time.png \
		--title='Wolfenbüttel | Acht Kanäle | 5 Minuten Durchschnitt' \
		--vertical-label='Bit pro Sekunde' \
		-W "NoGiPi @ $(date '+%F %T %Z')" \
		--slope-mode \
		--start $time \
		-w 1124 -h 500 \
		-l 0 -u 444960000 \
		--color BACK#ededed \
		--color ARROW#000000 \
		DEF:b546min=$rrdpath/546000000.rrd:bandwidth:MIN \
		DEF:b546avg=$rrdpath/546000000.rrd:bandwidth:AVERAGE \
		DEF:b546max=$rrdpath/546000000.rrd:bandwidth:MAX \
		DEF:b546last=$rrdpath/546000000.rrd:bandwidth:LAST \
		DEF:b554min=$rrdpath/554000000.rrd:bandwidth:MIN \
		DEF:b554avg=$rrdpath/554000000.rrd:bandwidth:AVERAGE \
		DEF:b554max=$rrdpath/554000000.rrd:bandwidth:MAX \
		DEF:b554last=$rrdpath/554000000.rrd:bandwidth:LAST \
		DEF:b562min=$rrdpath/562000000.rrd:bandwidth:MIN \
		DEF:b562avg=$rrdpath/562000000.rrd:bandwidth:AVERAGE \
		DEF:b562max=$rrdpath/562000000.rrd:bandwidth:MAX \
		DEF:b562last=$rrdpath/562000000.rrd:bandwidth:LAST \
		DEF:b570min=$rrdpath/570000000.rrd:bandwidth:MIN \
		DEF:b570avg=$rrdpath/570000000.rrd:bandwidth:AVERAGE \
		DEF:b570max=$rrdpath/570000000.rrd:bandwidth:MAX \
		DEF:b570last=$rrdpath/570000000.rrd:bandwidth:LAST \
		DEF:b578min=$rrdpath/578000000.rrd:bandwidth:MIN \
		DEF:b578avg=$rrdpath/578000000.rrd:bandwidth:AVERAGE \
		DEF:b578max=$rrdpath/578000000.rrd:bandwidth:MAX \
		DEF:b578last=$rrdpath/578000000.rrd:bandwidth:LAST \
		DEF:b586min=$rrdpath/586000000.rrd:bandwidth:MIN \
		DEF:b586avg=$rrdpath/586000000.rrd:bandwidth:AVERAGE \
		DEF:b586max=$rrdpath/586000000.rrd:bandwidth:MAX \
		DEF:b586last=$rrdpath/586000000.rrd:bandwidth:LAST \
		DEF:b594min=$rrdpath/594000000.rrd:bandwidth:MIN \
		DEF:b594avg=$rrdpath/594000000.rrd:bandwidth:AVERAGE \
		DEF:b594max=$rrdpath/594000000.rrd:bandwidth:MAX \
		DEF:b594last=$rrdpath/594000000.rrd:bandwidth:LAST \
		DEF:b602min=$rrdpath/602000000.rrd:bandwidth:MIN \
		DEF:b602avg=$rrdpath/602000000.rrd:bandwidth:AVERAGE \
		DEF:b602max=$rrdpath/602000000.rrd:bandwidth:MAX \
		DEF:b602last=$rrdpath/602000000.rrd:bandwidth:LAST \
		AREA:444960000#c9feb8 \
		STACK:55040000#feb8b8 \
		COMMENT:"Separate Channel Statistics\n" \
		AREA:b546avg#fffc00:'546 Mhz      ' \
		GPRINT:b546avg:AVERAGE:"Avg %5.2lf %s   " \
		GPRINT:b546min:MIN:"Min %5.2lf %s   " \
		GPRINT:b546max:MAX:"Max %5.2lf %s" \
		GPRINT:b546last:LAST:"  Last %5.2lf %s\n" \
		STACK:b554avg#ffc600:'554 Mhz      ' \
		GPRINT:b554avg:AVERAGE:"Avg %5.2lf %s   " \
		GPRINT:b554min:MIN:"Min %5.2lf %s   " \
		GPRINT:b554max:MAX:"Max %5.2lf %s" \
		GPRINT:b554last:LAST:"  Last %5.2lf %s\n" \
		STACK:b562avg#ffa200:'562 Mhz      ' \
		GPRINT:b562avg:AVERAGE:"Avg %5.2lf %s   " \
		GPRINT:b562min:MIN:"Min %5.2lf %s   " \
		GPRINT:b562max:MAX:"Max %5.2lf %s" \
		GPRINT:b562last:LAST:"  Last %5.2lf %s\n" \
		STACK:b570avg#ff6c00:'570 Mhz      ' \
		GPRINT:b570avg:AVERAGE:"Avg %5.2lf %s   " \
		GPRINT:b570min:MIN:"Min %5.2lf %s   " \
		GPRINT:b570max:MAX:"Max %5.2lf %s" \
		GPRINT:b570last:LAST:"  Last %5.2lf %s\n" \
		STACK:b578avg#00c6ff:'578 Mhz      ' \
		GPRINT:b578avg:AVERAGE:"Avg %5.2lf %s   " \
		GPRINT:b578min:MIN:"Min %5.2lf %s   " \
		GPRINT:b578max:MAX:"Max %5.2lf %s" \
		GPRINT:b578last:LAST:"  Last %5.2lf %s\n" \
		STACK:b586avg#0090ff:'586 Mhz      ' \
		GPRINT:b586avg:AVERAGE:"Avg %5.2lf %s   " \
		GPRINT:b586min:MIN:"Min %5.2lf %s   " \
		GPRINT:b586max:MAX:"Max %5.2lf %s" \
		GPRINT:b586last:LAST:"  Last %5.2lf %s\n" \
		STACK:b594avg#0066ff:'594 Mhz      ' \
		GPRINT:b594avg:AVERAGE:"Avg %5.2lf %s   " \
		GPRINT:b594min:MIN:"Min %5.2lf %s   " \
		GPRINT:b594max:MAX:"Max %5.2lf %s" \
		GPRINT:b594last:LAST:"  Last %5.2lf %s\n" \
		STACK:b602avg#0042ff:'602 Mhz      ' \
		GPRINT:b602avg:AVERAGE:"Avg %5.2lf %s   " \
		GPRINT:b602min:MIN:"Min %5.2lf %s   " \
		GPRINT:b602max:MAX:"Max %5.2lf %s" \
		GPRINT:b602last:LAST:"  Last %5.2lf %s\n" \
		COMMENT:"Aggregierte Frequenzstatistiken\n" \
		HRULE:444960000#000000:'Grenze (444,96 Mbit/s)'
	done
}

update_data () {
	for freq in $frequenzen; do
		lock=$(/opt/bin/mediaclient -m DVBC -f $freq -S 6952000 -M Q256 | grep 'LOCKED')
		if [ -z "$lock" ]; then
			logger "FAILURE: Not possible to lock ($freq) MHz"
			export bw$freq=0
		else
			bw=$(timeout 3s /opt/bin/mediaclient --cat /dev/dvb/adapter0/dvr0 | timeout 2s /opt/bin/mediaclient --pipecount=1000 2>&1 | awk '{print $3}')
			bw=$(echo $bw | awk '{print $1}')
			let bw=bw*8
			rrdtool update $rrdpath/$freq.rrd N:$bw
		fi
	done
}

echo 0 > /sys/module/dvb_core/parameters/dvb_powerdown_on_sleep

[ "$(ps | grep -c mediasrv)" -lt 2 ] && /opt/bin/mediasrv -d

case "$1" in
	data)
		create_rrd
		update_data
	;;
	png)
		create_png
	;;
esac
Diese zwei Cronjobs reichen:

Code: Alles auswählen

* * * * * /root/rrd.sh data
*/120 * * * * nice -n20 /root/rrd.sh png
Ergebnis:
[ externes Bild ]
[ externes Bild ]
Benutzeravatar
NoGi
Fortgeschrittener
Beiträge: 307
Registriert: 29.11.2012, 13:06
Wohnort: Metropolregion Rhein-Neckar

Re: Auslastung des eigenen Segments ansehen

Beitrag von NoGi »

derdigge hat geschrieben:Also openwrts integriertes rrdtool ist zu alt für diese Mittelwertberechnung.
Ich habe nun durch das Spicken bei euch beiden ein saberen chart, so wie er sein soll.

Mit diesem Script ist eine gute Auswertung unter openwrt möglich. Ich habe dazu einen usbstick gemountet.
Es ist nicht unbedingt nötig, da die Show ca 1,5mb an Flash belegen würde. Man kann die auch gut in den Ram verlagern.
Die rrds können auf dem Flash liegen (600kb) und den Rest im /tmp, also ram.

Es ist natürlich viel zusammengespickt hier aber es ist ein File welches in Verbindung mit dem Sundtek stick die Sache schlank genug über die Bühne bringt
um den Router nicht übermäßig zu beeinflussen.


Ergebnis:
[Images gelöscht]

Zwei Bemerkungen:

Wenn du "NoGiPi" im Script durch "DerDiggePi" ersetzt sieht das noch besser aus :party:

User Tokon aus den Unitmedia /Kabelbw Foren hat mich noch darauf hingewiesen, dass in dem Erzeugungs-Script für die RRD Files ein Fehler steckt.

Er schreibt:
Tokon hat geschrieben: z.B.: RRA:MIN:0.5:5:288 \
Die 0.5 ist der xff, welcher angibt wie viele Daten unknown sein dürfen damit trotzdem bei der Konsolidierung ein gültiger Wert entsteht, hier also 50%.
Keine Ahnung, liegt es an der Linux-Distribution für's RasPi oder an der Ländereinstellung (Deutschland), auf jeden Fall wird beim Generieren der RRDs nicht diese 0.5 übernommen, unsere RRDs haben hier exakt 0. Also sobald 1 Minute am Tag fehlt, hast du in der Jahres-Grafik eine Lücke, obwohl diese fehlende Minute ja überhaupt nicht relevant ist. Eigentlich dürften 12 Stunden Daten fehlen und es wird trotzdem der Tagesschnitt berechnet.

Legt man die RRDs statt mit 0.5 mit 0,5 an (Komma statt Punkt), dann stimmt es und die RRDs haben den korrekten Wert von 50%.
Leider kann man dies nicht mit "rrdtool tune" bereinigen, man muss es manuell machen. Also einen xml-Dump erstellen, dann alle
<xff>0.0000000000e+00</xff>
durch
<xff>1.0000000000e-01</xff>
ersetzen und als restore wieder einspielen. Ich bin bei mir mal nur auf 10%, also 0,1 gegangen.

Beim Testen hat das gleich funktioniert. Hab den Cronjob für 2 Minuten angehalten, die Tages-Grafik hatte dann eine Lücke, die Wochen-Grafik nicht. Bei einem Reboot bekam nicht mal die Tages-Grafik eine Lücke, da die erste Datenerfassung noch innerhalb des heartbeats lag.

Wenn du also weniger Lücken in deinen Grafiken haben möchtest, solltest du dies anpassen.
Kudos an Tokon für das Herausfinden. :anbet:

-NoGi
Sundtek
Newbie
Beiträge: 14
Registriert: 28.10.2012, 17:36

Re: Auslastung des eigenen Segments ansehen

Beitrag von Sundtek »

So nebenbei,

das hat keine Auswirkung bei uns:
echo 0 > /sys/module/dvb_core/parameters/dvb_powerdown_on_sleep

Unser Treiber enthält einen eigenen DVB Stack (welcher sich nur zur kompatibilität hinter den existierenden klemmt um keine Probleme zu bereiten), die Konfiguration kann via /etc/sundtek.conf vorgenommen werden. Oder halt mit dem mediaclient Befehl.
Zettel
Newbie
Beiträge: 37
Registriert: 05.03.2014, 15:37

Re: Auslastung des eigenen Segments ansehen

Beitrag von Zettel »

Da sich an meinem Anschluß nun scheinbar einiges getan hat, habe ich wieder mal eine Frage. :)

In meiner Fritzbox habe ich jetzt 8 QAM256 Kanäle und 8 QAM64 Kanäle für den Downstream. Kann ich das irgendwie gescheit in ein Diagramm bringen?
Zettel
Newbie
Beiträge: 37
Registriert: 05.03.2014, 15:37

Re: Auslastung des eigenen Segments ansehen

Beitrag von Zettel »

So sieht das nun aus, 12 Kanäle QAM256 und 4 Kanäle QAM64 (laut Belegungsplan)

[img]http://www.bilder-hosting.info/vorschau ... 95258y.png[/img]
byom
Newbie
Beiträge: 1
Registriert: 31.01.2015, 13:30

Re: Auslastung des eigenen Segments ansehen

Beitrag von byom »

Hallo an alle,

dieses Thema ist wirklich sehr interessant. Aufgrund der Seitenanzahl habe ich eine Frage: Ist der erste Beitrag in diesem Thema noch auf dem aktuellsten Stand?
29bde
Fortgeschrittener
Beiträge: 382
Registriert: 28.02.2010, 19:38

Re: Auslastung des eigenen Segments ansehen

Beitrag von 29bde »

Da würde ich mich gerne dranhängen und nach dem letzten Stand zum Plugin für Enigma2 Boxen (Dreambox 7020HD) nachfragen :)
Knidel
Co-Admin
Co-Admin
Beiträge: 11204
Registriert: 07.05.2006, 10:06
Wohnort: Berlin
Bundesland: Berlin

Re: Auslastung des eigenen Segments ansehen

Beitrag von Knidel »

29bde hat geschrieben:Da würde ich mich gerne dranhängen und nach dem letzten Stand zum Plugin für Enigma2 Boxen (Dreambox 7020HD) nachfragen :)
Im ihad habe ich ein Plugin veröffentlicht:
http://www.i-have-a-dreambox.com/wbb2/t ... did=185861

[img]http://www.bilder-hosting.info/vorschau ... 74950z.png[/img]
[img]http://www.bilder-hosting.info/vorschau ... 74969f.png[/img]
ullo
Newbie
Beiträge: 9
Registriert: 04.11.2013, 19:48

Re: Auslastung des eigenen Segments ansehen

Beitrag von ullo »

Hallo Knidel,

vielen Dank für den Tip mit dem Plugin.
Ich habe versucht das Plugin auf meinem VU+ zum Laufen zu kriegen.
Die Installation hat geklappt, nur wird bei der ersten Messung kein Ergebnis ermittelt, und es kommt zur Meldung: Noch keine Downstream-Kanäle hinzugefügt. Lassen Sie zunächst nach Kanälen suchen.
Auf der Box ist auch dvbsnoop installiert, welches ich via opkg install aktualisiert habe.
Kannst du mir einen Tip geben, was ich falsch mache? Muss ich noch etwas beachten, bzw. konfigurieren?

Danke dir.
Knidel
Co-Admin
Co-Admin
Beiträge: 11204
Registriert: 07.05.2006, 10:06
Wohnort: Berlin
Bundesland: Berlin

Re: Auslastung des eigenen Segments ansehen

Beitrag von Knidel »

Das Plugin funktioniert auf VU+ Receivern nicht. Ich weiß leider auch nicht, woran das liegt. :|