Tipps und Tricks für bessere Perfomance beim Streamen

to stream or not to stream
AudioSlyer
Erleuchteter
Erleuchteter
Beiträge: 450
Registriert: Sonntag 28. Juli 2002, 01:18

Tipps und Tricks für bessere Perfomance beim Streamen

Beitrag von AudioSlyer »

Bitte in diesem Thread nur getestete Tipps vorschlagen.
Ich fang mal an!

Filesystem:
Ich habe das Script "init_hdd.sh" und die fstab auf ext2 umgestellt.
Ext3 ist ein CPU-Killer auf der DBox2.

Ringbuffer:
Ich habe bei mir mal das Ringbuffer-Minimum von 20 auf 5 herabgesetzt (Eingriff in den Sourcen). CPU-Last ist etwas gesunken und natürlich auch der Speicherverbrauch. In diesem Zug muss man die Umschaltung von PES in den SPTS-Mode beachten und noch etwas "delayen". Betreibt man die Box immer im SPTS-Mode gibt es keine Probleme, wenn man im SPTS-Mode streamen möchte.

Sync:
Synchrones Schreiben muss eingeschaltet sein, sonst entstehen Ruckler.

HDD-Anlaufzeit
Wie von DrStoned geschrieben sollte unbedingt vor dem Recorden die HDD anlaufen, entweder durch ein Script oder einen Systemcall ;)
(ls /hdd > /dev/null) - Sonst gibt es bei einem kleinen Ringbuffer Probleme.

Split-Size
Bei HDD-Aufnahmen auf 0 stellen.
In der "stream2file.cpp" könnte man wenn der Wert 0 ist, die while-scheife kürzer durchlaufen. Wieder etwas weniger CPU-Last.

Sectionsd bei Streaming stoppen
Kann man und sollte man unter Einstellungen aktivieren.
Sectionsd schlägt sonst mit gnadenlosen 40% zu.
Killen brauchte ich ihn nicht, RAM reicht im Moment noch aus ;)


Bitte nur weitere Tipps oder auf Fehler hinweisen. Offtopic unerwünscht.
Für verbale Ergüsse -> http://forum.tuxbox-cvs.sourceforge.net ... 155#312155
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Beitrag von DrStoned »

Ergänzung zu den Ausführungen von AudioSlayer

Unnötige Daemons ausschalten:

Die Daemons tuxmaild und tuxcald sollten während der Aufnahme abgeschaltet werden. Falls eine Mail eintrifft oder ein Termin über den Kalender signalisiert wird, kann es zu Rucklern in der Aufnahme kommen.

Neutrino während der Aufnahme auf die höchste Prozessorpriorität setzen.

Optional kann auch noch die Fernbedienung während der Aufnahme abgeschaltet werden, um zu verhindern, dass Mann, Frau oder Kinder die Aufnahme durch unbedachtes oder versehentliches Umschalten ruinieren.

Hier nochmal meine Recording-Skripts:

recording.timer

Code: Alles auswählen

#!/bin/sh

# Dieses Skript wird beim Announce Zeitpunkt 
# einer Aufnahme ausgeführt, 3 Minuten vor Aufnahmestart.

# Festplatte aufwecken

ls /hdd > /dev/null
recording.start

Code: Alles auswählen

#!/bin/sh
# Dieses Skript wird beim Start 
# einer Aufnahme ausgeführt

# Festplatte wecken

ls /hdd > /dev/null
sleep 5

# Neutrino die höchste Prozessorpriorität zuweisen

renice -15 `pidof neutrino`

# Die Daemons von TuxMail und TuxCal abschalten

if [ -e /tmp/tuxmaild.pid ]; then kill -usr2 $(cat /tmp/tuxmaild.pid); fi
if [ -e /tmp/tuxcald.pid ]; then kill -usr2 $(cat /tmp/tuxcald.pid); fi

# Optional die Fernbedienung sperren während der Aufnahme
# Um diese Option einzuschalten die # vor der nächsten Zeile entfernen

# sleep 10 && wget -q -O /dev/null http://127.0.0.1/control/rc?lock &
recording.end

Code: Alles auswählen

#!/bin/sh 
# Dieses Skript wird beim Beenden 
# einer Aufnahme ausgeführt

# Neutrino auf normale Prozessorpriorität rücksetzen 

renice 0 `pidof neutrino` 

# Die Daemons von TuxMail und TuxCal reaktivieren 

if [ -e /tmp/tuxmaild.pid ]; then kill -usr1 $(cat /tmp/tuxmaild.pid); fi 
if [ -e /tmp/tuxcald.pid ]; then kill -usr1 $(cat /tmp/tuxcald.pid); fi

# Optional Fernbedienung reaktivieren
# Um diese Option einzuschalten die # vor der nächsten Zeile entfernen

# sleep 10 && wget -q -O /dev/null http://127.0.0.1/control/rc?unlock &
Diese Skripts kommen nach /var/tuxbox/config/ und benötigen Ausführrechte (755). Sie müssen im UNIX-Format auf der Box abgespeichert werden, sonst funktionierts nicht.

Fertige Skripte gibts hier. Bei diesen ist allerdings das Abschalten der Fernbedienung schon aktiviert. Wer das nicht haben will, muss vor die entsprechende Zeile mit einem UNIX-Editor (Ultraedit, Crimson-Editor, Prototon-Editor, vi) eine # setzen.
Zur Not kann man das auch mit dem Tuxbox-Commander-Plugin (blaue Taste) erledigen.

EPG einlesen:

Die Box schon zur Ankündigung der Aufnahme umschalten lassen. Damit ist gewährleistet, dass dann auch die EPG-Daten eingelesen wurden.

Einstellung hierzu:

In den Aufnahmeeinstellungen Umschalten bei Ankündigung = Ein

Greetz von DrStoned :lol: :lol: :lol:
Zuletzt geändert von DrStoned am Mittwoch 13. September 2006, 14:18, insgesamt 3-mal geändert.
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

Edit: gelöscht wg. geistigem Aussetzer :lol: sry DrStoned
Zuletzt geändert von Tommy am Mittwoch 13. September 2006, 14:23, insgesamt 1-mal geändert.
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Beitrag von DrStoned »

Tommy hat geschrieben:@Dr Stoned:

in der recording.end killst Du die Daemons nochmal anstatt sie zu starten. Ich würde zusätzlich auch noch über ein Flag abfragen ob sie vor der Aufnahme überhaupt an waren. Sprich killen und bei Erfolg flag setzen - flag lesen, restart, flag löschen
Was meinst Du was da gemacht wird? Die Deamons werden nicht gekillt, sondern nur stillgelegt und wieder aktiviert. Das Setzen der Flags machen die Deamons selber über ihre PID.

Das passt so, schau mal ins Tuxbox-Wiki bei Tuxmail und Kalender.

Greetz von DrStoned :lol: :lol: :lol:
Greetz von DrStoned :lol: :lol: :lol:
pOo
Einsteiger
Einsteiger
Beiträge: 144
Registriert: Sonntag 6. August 2006, 11:16

Beitrag von pOo »

Danke Euch fuer die Mühe. Meine Philips macht zwar keine Probleme, tune aber trotzdem gerne mit ^^