Re: Aroio 4.x Beta
Verfasst: 3. November 2018, 21:27
Aroio beta 4.74
- Lastverteilung optimiert
So, ich habe einiges heraus gefunden und umgesetzt..
Der Tip mit den Prioritäten war schon mal die richtige Richtung. Leider ist die Geschichte mit den Prioritäten unter Linux sehr undurchsichtig. Es beginnt damit, dass die Programme einen Hauptthread starten und man mit ps oder top erst mal nur diesen sieht. Die eigentlich interessanten Threads sind aber die Kindprozesse, die mit den höheren Prioritäten gestartet werden. Gut, htop gibt da einiges her, aber so 100%ig schlau wird aus der Prio-Anzeige von htop auch keiner, habe das schon mit einigen Leuten diskutiert. Unklar ist auch, warum brutefir mit der festen RT-Prio von 7 oder was startet, jackd aber unter 10 erst mal gar nicht in den sched-fifo Modus geht (woraufhin brutefir den Dienst verweigert). Nun ja, ist eben so, also die 10.
squeezelite läuft jetzt mit Prio 88 (also leicht unterhalb der IRQs, die müssen Vorrang haben) und jack mit 10.
Das alleine reicht aber noch nicht. Ab und an scheint die Lastverteilung auf die Kerne so unglücklich auszufallen, dass einer der kerne laufend am Anschlag hängt. Daher habe ich den Ressourcenfresser squeezelite an die CPU-Kerne 3 und 4 genagelt, jack und brutefir fix an die 1 und 2. Nach meiner Beobachtung liegt die Haupt-Systemlast (deren Verteilung ich kaum beeinflussen kann) auf den Kernen 1 und 2, ist aber eh recht gering. Da brutefir und jack auch bei 192 kHz sehr überschaubar im Verbrauch bleiben, klappt das soweit sehr gut.
jackd läuft jetzt bei 192 kHz mit der 4096 Puffergröße als Voreinstellung.
Das Ganze läuft sowohl auf dem 3B+ als auch auf dem 3B! Ich habe auch heraus gefunden, warum es bei mir so wechselhaft lief: Der Pi wird irgendwann warm und dann geht nix mehr! Ich habe ein kleines script eingebaut, dass man einfach mit temp aufrufen kann, welches einem die System-Temperatur ausgibt. Ab 80° (!) gibt's dann Ärger.
Der Aroio läuft pauschal auf "Turbo". Wir hatten damit nie Ärger, haben ihn ja aber ursprünglich ausschließlich auf 96 kHz betrieben, was er dauerhaft kann. Man müsste mal probieren, wie er sich jetzt ohne Turo verhält, nachdem die Lastverteilung optimiert ist.
Über Testergebnisse zum squeezelite-Betrieb, aber natürlich auch zu allen anderen Modi, wäre ich wie üblich sehr dankbar, bei mir macht es jetzt einen Dauerhaft stabilen Eindruck. Ich habe allerdings nahezu ausschließlich 192 kHz getestet, das schwerste zuerst..
Wenn squeezelite dann im Kasten ist, knöpfe ich mir die restlichen Player vor..
- Lastverteilung optimiert
So, ich habe einiges heraus gefunden und umgesetzt..
Der Tip mit den Prioritäten war schon mal die richtige Richtung. Leider ist die Geschichte mit den Prioritäten unter Linux sehr undurchsichtig. Es beginnt damit, dass die Programme einen Hauptthread starten und man mit ps oder top erst mal nur diesen sieht. Die eigentlich interessanten Threads sind aber die Kindprozesse, die mit den höheren Prioritäten gestartet werden. Gut, htop gibt da einiges her, aber so 100%ig schlau wird aus der Prio-Anzeige von htop auch keiner, habe das schon mit einigen Leuten diskutiert. Unklar ist auch, warum brutefir mit der festen RT-Prio von 7 oder was startet, jackd aber unter 10 erst mal gar nicht in den sched-fifo Modus geht (woraufhin brutefir den Dienst verweigert). Nun ja, ist eben so, also die 10.
squeezelite läuft jetzt mit Prio 88 (also leicht unterhalb der IRQs, die müssen Vorrang haben) und jack mit 10.
Das alleine reicht aber noch nicht. Ab und an scheint die Lastverteilung auf die Kerne so unglücklich auszufallen, dass einer der kerne laufend am Anschlag hängt. Daher habe ich den Ressourcenfresser squeezelite an die CPU-Kerne 3 und 4 genagelt, jack und brutefir fix an die 1 und 2. Nach meiner Beobachtung liegt die Haupt-Systemlast (deren Verteilung ich kaum beeinflussen kann) auf den Kernen 1 und 2, ist aber eh recht gering. Da brutefir und jack auch bei 192 kHz sehr überschaubar im Verbrauch bleiben, klappt das soweit sehr gut.
jackd läuft jetzt bei 192 kHz mit der 4096 Puffergröße als Voreinstellung.
Das Ganze läuft sowohl auf dem 3B+ als auch auf dem 3B! Ich habe auch heraus gefunden, warum es bei mir so wechselhaft lief: Der Pi wird irgendwann warm und dann geht nix mehr! Ich habe ein kleines script eingebaut, dass man einfach mit temp aufrufen kann, welches einem die System-Temperatur ausgibt. Ab 80° (!) gibt's dann Ärger.
Der Aroio läuft pauschal auf "Turbo". Wir hatten damit nie Ärger, haben ihn ja aber ursprünglich ausschließlich auf 96 kHz betrieben, was er dauerhaft kann. Man müsste mal probieren, wie er sich jetzt ohne Turo verhält, nachdem die Lastverteilung optimiert ist.
Über Testergebnisse zum squeezelite-Betrieb, aber natürlich auch zu allen anderen Modi, wäre ich wie üblich sehr dankbar, bei mir macht es jetzt einen Dauerhaft stabilen Eindruck. Ich habe allerdings nahezu ausschließlich 192 kHz getestet, das schwerste zuerst..
Wenn squeezelite dann im Kasten ist, knöpfe ich mir die restlichen Player vor..