Ich habe dieses Thema hier schonmal im openATV 6.2 Image Thread angebracht, aber da geht es etwas unter und gehört da letztendlich auch nicht hin: Da ich meine Erkenntnisse mit anderen uno4kse Usersn teilen möchte, mache ich das Thema hier auf. Möglciherweise sind auch andere Boxen betroffen.


Ich bin aktuell mit openpli 6.1 auf einer uno4kse unterwegs, hatte auch schon VTI, VUplus Original und openATV 6.2 probiert aber alle System haben ein Performanceoroblem in der uno4kse bei der Bedienung einer Festplatte, egal ob intern oder extern. Das trat bei zwei Geräten auf und ist kein HW Problem der Geräte. Es scheint mit Kernel 4.1.20 zu tun zu haben, Geräte mit anderen Kernelversionen sind möglicherweise nicht betroffen

Das Problem ist Folgendes:
Wenn ich parallel zum Aufzeichnen auch mit /dem Schnitteditor und dann Moviecut Filme schneide, dann haben die Aufnahmen Aussetzer, irgendwann werden einfach nicht mehr genug Daten auf die HDD geschrieben und obwohl die HDD dabei dann nur ein paar Mbyte/s schreibt, ist die CPU Load laut top Kommando im Bereich von 95% im I/O unterwegs. Ganz schlimm wird es, wenn die Box parallel auch noch Filme kopiert und verschiebt.
Ich hatte das mittlerweile soweit runtergebrochen, dass ich gesehen habe, dass die ARM CPU ist viel zu lange im I/O Treiber unterwegs. Ich habe einen Vergleich zu einer et9200 gemacht, die noch eine BCM7405 mit 2x400Mhz MIPS enthält, bei der ging das besser obwohl die HW langsamer ist.

Da die ARM Archtikturen ja die zu aktuellen sind, sah ich das Problem als kritisch und müßte auch losbar sein, denn ich glaube einfach nicht, das diese moderne CPIU das nicht bei richtiger Software besser hinbekommt.


Ich habe jetzt beim openpli eine Lösung für meine Performanceproblem bei der HDD gefunden, die vermutlich auch hier bei openATV und auch bei VTI klappt

Ich habe den I/O Scheduler für die hdd von
cfq Completely fair queuing​) auf deadline umgestellt und die Box ist nicht mehr wiederzuerkennen.


welcher scheduler eingestellt ist kann man auf der cli nachsehen mit


cat /sys/block/sd*/queue/scheduler

​für alle platten oder

cat /sys/block/sda/queue/scheduler

für die erste Platte

da kommt vermutlich
noop deadline [cfdg]

noop ist einen ganz normaler FIFO Scheduler
deadline macht Queues mit Sortierungen nach Sektornummer für HDDs, sorgt aber auch dafür , das Aufträge nicht verhungern und hat dadurch eine gewisse echtzeitfähigkeit, die man ja fürs Aufzeichnen der Filme braucht, denn die Daten kommen immer vom Sender rein und müssen auf die HDD
cfq soll ein completter fairer Scheduler sein, der aber bei der uno4kse und Kernel 4.1.20 den Prozessen zum Aufnehmen zu wenig Zeit gibt für die Plattenaufträge

ich habe dann deadline eingeschaltet einfach mit

echo deadline > /sys/block/sda/queue/scheduler


Wenn beim openATV aber kein deadline angeboten wird, dann kann man das so erstmal nicht ausprobieren. Dann ist aber noop noch möglich. Ein openATV User hat schon mit einer Dreambox eine Verbesserung gehabt. Der nutzt allerdings eine SSD, für die vermutlcih die Optimierungenin deadline gar nicht so wichtig sind, da dort alle Sektoren gleich schnell zugegriffen werden können.

Das ist nach dem Booten auch wieder weg und muss entweder im Kernel reincompiliert werden oder mit den runlevel Scripten beim Start an passender Stelle eingeschaltet werden
Dafür kann man ein Script machen, was folgden Inhalt hat, der Vorschlag am aus einem anderen Forum

for D in /sys/block/sd*; do [ `cat $D/removable` == "0" ] && echo deadline > $D/queue/scheduler ; done

Damit werden alle Block Devices abgeklappert und nur diejenigen, die wirklich HDDs oder SDDs sind, werden umgestellt. USB Sticks würden damit nicht umgestellt, da diese beim removable keine 0 stehen haben.
Falls man also mal eine USB HDD anklemmt, muss man nur einmal booten und dann ist das dort auch umgestellt.
Wo das genau bei openATV hin muss, damit es beim booten klappt, kann ich aber nicht sagen

Das hat wahre Wunder gewirkt. Keine Aussetzer mehr beim Aufzeichnen und parallelem Schneiden/Verschieben. Habe das mit 20 Aufnahmen, Schneidern und Verschieben getestet. Alles super.
Auch die träge Bedienung, die vorher da war und ich aber auch bei solchen Aktionen von meinen älterne Boxen schon kannte, ist weg.
Oft war es so, wenn man im Dateimanager auf einen Film geht, der gerade geschnitten oder aufgezeichnet wird, dann dauerte es einige Zeit, bis die Dateigröße angezeigt wurde. Das ist jetzt komplett flüssig.


Entweder hat er cfq Scheduler auf ARM i(auf jeden Fall bei Kernel 4.1.20 und uno4kSE) ein Problem oder er passt nicht wirklich gut zu den Echtzeitanforderung der Box mit gleichzeitigen anderen Plattenaufträgen. Wobei er bei den MIPS Geräten auch schon immer aktiv war und da hatte ich diese extremen Probleme nicht.


Zu den Schedulern gibt es einiges im Netz zu lesen, wer das mal wissen möchte

Wer also mal solche Problem hat, dem lege ich die Umstellung von cfq auf deadline ans Herz