Welches Speicherlimit sollten Sie für Jellyfin festlegen?

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.

Wählen Sie kein universelles Speicherlimit für Jellyfin. Beginnen Sie mit einer gemessenen Arbeitslast, reservieren Sie Speicher für den Host und benachbarte Container und setzen Sie erst dann eine harte Obergrenze, wenn Sie die tatsächlichen Spitzenwerte beobachtet haben.

Wächst Ihr Container, bis der Host auf Swap ausweicht, oder verursacht ein niedriges Limit wiederholte OOM-Kills? Messen Sie die Auslastung im Leerlauf, Bibliotheksscans, Metadatenverarbeitung, gleichzeitige Transkodierungen und den für Docker oder die VM verfügbaren Speicher, bevor Sie das Limit ändern. Ein Limit ist nur dann sicher, wenn die ursprüngliche Arbeitslast weiterhin abgeschlossen wird und dem Host noch ausreichende Reserven zur Wiederherstellung bleiben.

Normales Cache-Wachstum von Speicherknappheit im residenten Speicher unterscheiden

Vergleichen Sie zunächst den RSS-Speicher des Containers, den Cache, den Swap und den freien Host-Speicher im Leerlauf sowie während des anspruchsvollsten wiederholbaren Vorgangs. Der Dateisystem-Cache kann groß erscheinen, ohne dass ein Speicherleck vorliegt, während steigender residenter Speicher zusammen mit OOM-Ereignissen auf eine tatsächliche Einschränkung hindeutet.

Eine einfache Docker-Bereitstellung von Jellyfin beginnt häufig mit einigen Gigabytes und benötigt für die Transkodierung mehr, doch der korrekte Wert hängt von der Arbeitslast ab (arbeitslastbasierte Speichergrundlage).

Bleibt der RSS-Speicher konstant, während der Cache wächst, und verfügt der Host über freigebbaren Speicher, sollten Sie beobachten, statt das Limit zu verschärfen. Steigt der RSS-Speicher zusammen mit Swap-Nutzung oder OOM-Kill-Meldungen, fahren Sie mit den Transkodierungs- und Bibliothekstests fort.

Testen Sie das Limit unter dem auslösenden Fehlerzustand

Führen Sie einen Bibliotheksscan, eine repräsentative Transkodierung und die erwartete Anzahl gleichzeitiger Streams durch. Zeichnen Sie dabei die Speichernutzung der cgroups, Speicherereignisse, Swap-Nutzung und die Auslastung des Hosts auf. Ändern Sie zwischen den Durchläufen ausschließlich das Speicherlimit.

Ein Limit, das bei der Wiedergabe im Leerlauf ausreicht, aber bei Untertiteln, HDR-Konvertierung oder der Indizierung versagt, ist keine gültige Produktionseinstellung. Notieren Sie, welcher Auslöser den Fehler verursacht hat, damit Sie das Limit nicht wegen eines unabhängigen Engpasses erhöhen.

Wird der Container beendet, erhöhen Sie das Limit erst, nachdem Sie unnötigen Transkodierungs-Cache reduziert oder schwere Aufgaben getrennt haben. Wechselt der Host selbst auf Swap, verringern Sie die Parallelität oder verschieben Sie eine Aufgabe. Jellyfin den gesamten verbleibenden RAM zu geben, verlagert den Fehler lediglich auf einen anderen Dienst.

Eine Abbruchgrenze festlegen und die dauerhafte Übernahme prüfen

Setzen Sie eine Warnung unterhalb des harten Limits und lassen Sie ausreichend Speicher für den Host, Speicherdienste und einen sauberen Neustart frei. Eine harte Obergrenze sollte den Host schützen und nicht einen unbeschränkten Prozess oder einen zu klein dimensionierten Rechner verdecken.

Stoppen Sie den Container nach einer Änderung des Limits einmal, erstellen Sie ihn neu und wiederholen Sie anschließend den ursprünglichen Scan sowie den Wiedergabetest, der den Fehler auslöst. Prüfen Sie, ob das konfigurierte Limit nach der Neuerstellung weiterhin aktiv ist und die Datenbank beschreibbar bleibt.

Beenden Sie die Optimierung und eskalieren Sie das Problem, wenn trotz eines Limits, das keine Host-Reserve lässt, weiterhin OOM-Ereignisse auftreten, die Datenbank beschädigt wird oder der Prozess ohne reproduzierbare Arbeitslast weiter wächst. Sichern Sie die Protokolle und die zuletzt bekannte funktionierende Konfiguration, bevor Sie eine größere Änderung vornehmen.

Die Spitzenlast bei der Wiedergabe nach einem Kaltstart erneut prüfen

Starten Sie den Host neu, warten Sie, bis Speichereinbindungen und benachbarte Container bereit sind, und reproduzieren Sie dieselbe Mischung aus Streams mehrerer Benutzer, durch die das Limit ursprünglich überschritten wurde. Validieren Sie nicht nur anhand eines Dashboards im Leerlauf oder einer einzelnen Direct-Play-Sitzung.

Die Wiederherstellung ist bestätigt, wenn die Wiedergabe stabil bleibt, kein Swap-Sturm auftritt, der Container unterhalb seines Limits bleibt und eine frische Sicherung oder ein Neustart ohne speicherbezogene Fehler abgeschlossen wird. Vergleichen Sie das Ergebnis mit der vor der Optimierung aufgezeichneten Grundlage.

Behalten Sie die Einstellung bei, wenn die Spitzenlast mit messbarer Host-Reserve erfolgreich bewältigt wird. Tritt der Fehler erst auf, nachdem ein anderer Container gestartet wurde, teilen Sie das Ressourcenbudget auf oder planen Sie die konkurrierende Aufgabe neu, statt das Jellyfin-Limit erneut zu erhöhen.

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.