Warum verbraucht Jellyfin nach einem Update so viel CPU?

Eva Wong ist die Technische Redakteurin und und leidenschaftliche Tüftlerin bei ZimaSpace. Eine lebenslange Geek mit einer Leidenschaft für Homelabs und Open-Source-Software, sie spezialisiert sich darauf, komplexe technische Konzepte in zugängliche, praktische Anleitungenzu übersetzen. Eva ist der Meinung, dass Self-Hosting Spaß machen und nicht einschüchternd sein sollte. Durch ihre Tutorials befähigt sie die Community, Hardware-Setups zu entmystifizieren, vom Bau ihres ersten NAS bis hin zur Beherrschung von Docker-Containern.

Eine hohe Jellyfin-CPU-Auslastung nach einem Update hat gewöhnlich eine von vier Ursachen: Arbeiten beim Start oder an der Datenbank, geplante Bibliotheksaufgaben, Software- oder teilweise Transkodierung oder ein Plugin bzw. Hintergrundjob, dessen Verhalten sich mit der neuen Version geändert hat. Gehen Sie nicht davon aus, dass Jellyfin durch das Update dauerhaft ressourcenintensiver geworden ist, bevor Sie ermittelt haben, welcher Prozess und welche Aufgabe die CPU-Auslastung verursacht.

Am schnellsten gelingt die Diagnose durch den Vergleich von Zeitpunkt und Auslastung. Ist die CPU nur wenige Minuten nach dem Start stark ausgelastet, beobachten Sie die Start- und Aufgabenprotokolle. Steigt die Auslastung nur während der Wiedergabe, prüfen Sie den aktiven Stream und den FFmpeg-Pfad. Bleibt sie hoch, während niemand etwas anschaut, überprüfen Sie geplante Aufgaben und Plugins. Ändern Sie jeweils nur eine Variable und reproduzieren Sie anschließend dieselbe Situation, damit Sie einen vorübergehenden Job nach dem Update von einer anhaltenden Regression unterscheiden können.

Startarbeiten von der CPU-Auslastung im laufenden Betrieb trennen

Starten Sie Jellyfin einmal in einer ruhigen Zeit neu und notieren Sie, wie lange die CPU-Auslastung erhöht bleibt. Beobachten Sie das Serverprotokoll auf Hinweise zu Migrationen, Datenbankoptimierung, Plugin-Ladevorgängen oder bibliotheksbezogenen Aktivitäten. Warten Sie anschließend, bis die Weboberfläche und die geplanten Aufgaben zur Ruhe gekommen sind, bevor Sie den neuen Basiswert beurteilen.

Zu Jellyfins standardmäßigen geplanten Aufgaben und Startaufgaben gehören Bibliotheksscans, die Extraktion von Keyframes, Datenbankoptimierung, Cache-Bereinigung und Plugin-Updates. Einige Aufgaben werden außerdem beim Start ausgeführt, sodass ein Auslastungsschub nach einem Update Wartungsarbeiten und keine dauerhafte Leistungsänderung sein kann.

Wenn die CPU-Auslastung nach Abschluss der Aufgaben wieder in den früheren Leerlaufbereich zurückkehrt, sollten Sie die Transkodierung nicht anpassen und keine Hardware ersetzen. Ihr System hat dann bereits auf vorübergehende Hintergrundarbeiten hingedeutet. Planen Sie stattdessen ressourcenintensive Aufgaben außerhalb der Wiedergabezeiten, wenn sie die Wiedergabe beeinträchtigen.

Prüfen, ob die Wiedergabe jetzt die CPU verwendet

Wenn der CPU-Anstieg erst beginnt, sobald ein bestimmter Client die Wiedergabe startet, öffnen Sie das Jellyfin-Dashboard und ermitteln Sie, ob die Sitzung Direct Play, Remuxing, Audio-Transkodierung oder Video-Transkodierung verwendet. Eine Änderung am Client oder Codec kann einen Softwarepfad aktivieren, der zuvor nicht verwendet wurde.

Geben Sie dieselben Medien auf demselben Client mit deaktivierten Untertiteln wieder und vergleichen Sie die CPU-Auslastung. Fällt sie deutlich ab, sind die Untertitel oder der Transkodierungspfad der entscheidende Faktor. Bleibt sie bei Direct Play hoch, untersuchen Sie den Speicher, Plugins oder einen anderen Prozess, statt den Encoder verantwortlich zu machen.

Für eine genauere Prüfung der Wiedergabe verwenden Sie dieselbe Methode wie unter Hardware-Transkodierung prüfen: Überprüfen Sie den aktiven GPU-/FFmpeg-Pfad, statt sich darauf zu verlassen, dass die Hardwarebeschleunigung lediglich in den Einstellungen aktiviert ist.

Die Auslastung des Containerprozesses messen, statt die Host-Auslastung zu erraten

Prüfen Sie auf einem gemeinsam genutzten Home-Server, ob Jellyfin tatsächlich der Prozess ist, der die CPU verbraucht. Backups, Medienindexer, Download-Clients, Vorschaubildgeneratoren und Dateisystemwartung können rund um denselben Neustart oder Update-Zeitpunkt ausgelöst worden sein.

Container-Laufzeiten bieten Ansichten zur Auslastung einzelner Container. Der Docker-Befehl stats ist dafür vorgesehen, die Live-Ressourcennutzung laufender Container anzuzeigen. Verwenden Sie die Ressourcennutzung pro Container oder die entsprechende Funktion Ihrer Plattform, während Sie das Problem reproduzieren.

Wenn ein anderer Container die CPU beansprucht, pausieren Sie diesen Job und wiederholen Sie den ursprünglichen Test. Ist Jellyfin der Verursacher, untersuchen Sie weiterhin Jellyfin-Aufgaben und die Wiedergabe. Andernfalls stand das Update lediglich zeitlich mit der Host-Auslastung in Zusammenhang und war nicht deren Ursache.

Jeweils eine Hintergrundquelle deaktivieren oder neu planen

Prüfen Sie die Seite mit den geplanten Jellyfin-Aufgaben auf eine Aufgabe, die gerade ausgeführt wird oder wiederholt neu startet. Überprüfen Sie außerdem Plugins, die eigene geplante Arbeiten, Metadatenanbieter, Intro-Erkennung, Untertitelverarbeitung oder andere Bibliotheksautomatisierung hinzufügen.

Deaktivieren Sie nicht in einem Schritt dauerhaft jedes Plugin und jede Aufgabe. Pausieren Sie zunächst einen kostenintensiven Kandidaten, lassen Sie die CPU-Auslastung zurückgehen und reproduzieren Sie anschließend dieselbe Leerlauf- oder Scan-Situation. Ein deutlicher Rückgang identifiziert den betreffenden Bereich. Tritt keine Änderung ein, aktivieren Sie ihn wieder und testen Sie den nächsten Kandidaten.

Wenn die Aufgabe legitim, aber ungünstig terminiert ist, planen Sie sie neu, statt sie als Fehler zu behandeln. Wenn sie nach dem Update in einer Schleife läuft, fehlschlägt oder sofort neu startet, sichern Sie Protokolle sowie Plugin- und Versionsinformationen, bevor Sie Datenbankdateien ändern oder den Server neu aufbauen.

Die Lösung unter der ursprünglichen Last nach dem Update bestätigen

Nachdem Sie die Ursache ermittelt haben, wenden Sie die passende Lösung an: Lassen Sie Migrationen abschließen, planen Sie eine Aufgabe neu, stellen Sie die Hardwarebeschleunigung wieder her, aktualisieren oder deaktivieren Sie ein problematisches Plugin oder korrigieren Sie die Client-/Transkodierungsbedingungen. Starten Sie anschließend einmal neu und wiederholen Sie exakt den Test, der zuvor die CPU-Auslastung erhöht hat.

Eine erfolgreiche Behebung bedeutet, dass sich die CPU-Auslastung wieder passend zur jeweiligen Arbeitslast verhält: Im Leerlauf sinkt sie nach dem Start, Direct Play bleibt ressourcenschonend und jede erforderliche Transkodierung verwendet den erwarteten Beschleunigungspfad. Eine einminütige Ruhephase ohne erneutes Auslösen des Problems reicht nicht aus.

Leiten Sie weitere Untersuchungen ein, wenn die CPU-Auslastung ohne laufende Aufgaben, ohne Transkodierung, ohne konkurrierenden Container und mit einer sauberen Plugin-Baseline weiterhin hoch bleibt. Erfassen Sie in diesem Fall die Jellyfin-Version, das Betriebssystem und die Architektur, den Aufgabenstatus sowie einen kurzen Protokollausschnitt, damit eine versionsspezifische Regression untersucht werden kann, ohne aus einem einzelnen ausgelasteten Start allgemeine Schlüsse zu ziehen.

Support & Tipps

Mehr zum Lesen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.