Optimaliseer de toegang tot de Jellyfin-database voor gelijktijdige containers door eerst één database-eigenaar te garanderen en vervolgens wachttijden op vergrendelingen, schrijfpieken, opslaglatentie en overlappende workloads te meten.
Openen meerdere containers dezelfde Jellyfin-database, of is één Jellyfin-container traag tijdens scans en gebruikersactiviteit? Verhoog het aantal verbindingen niet blindelings. Bepaal het databasetype, de actieve schrijvers, de koppelingslocatie, de back-upmethode en de exacte bewerking die wacht voordat je de backend of verbindingspool wijzigt.
Stel vast of vergrendeling of opslag de beperking vormt
Noteer meldingen dat de database bezet of vergrendeld is, de transactieduur, I/O-latentie, CPU-wachttijd en de gelijktijdige taken die op dat moment worden uitgevoerd. SQLite staat gelijktijdige leesbewerkingen toe, maar serialiseert schrijfbewerkingen. Veel schrijvers kunnen een korte metadatabijwerking daardoor in een wachtrij veranderen (vergrendelingsgedrag van SQLite).
Verplaats de database alleen als gecontroleerde test naar snelle lokale opslag. Als de wachttijden op vergrendelingen aanhouden terwijl de opslaglatentie afneemt, ligt het probleem bij overlappende schrijfbewerkingen of het databaseontwerp, niet alleen bij de schijf.
Vergelijk wachttijden op vergrendelingen met de opslaglatentie tijdens dezelfde scan. Als de database snel is maar schrijvers wachten, zijn planning en eigenaarschap—niet een extra verbinding—de volgende regelknoppen.
Wijs het database-eigenaarschap toe en plan schrijfbewerkingen
Slechts één Jellyfin-instantie mag eigenaar zijn van een bepaalde applicatiedatabase, tenzij de ondersteunde backend en implementatie expliciet coördinatie tussen meerdere instanties bieden. Voorkom dat scans, metadatavernieuwingen, importbewerkingen, back-ups en onderhoud op hetzelfde moment starten. Gebruik één containeridentiteit en één persistent pad, zodat een herstart geen tweede database aanmaakt.
Valideer dit door eerst één scan uit te voeren, daarna één gebruikersworkload en vervolgens de normale gelijktijdige mix. Vergelijk de wachttijden op vergrendelingen en de voltooiingstijd nadat elke extra schrijver is toegevoegd.
Voer de test uit met één schrijver en voeg daarna de normale gelijktijdige containerworkload toe. Zo stel je vast of elke extra schrijver de wachtrijtijd verhoogt of alleen onschadelijke leesbewerkingen toevoegt.
Weet wanneer een andere backend gerechtvaardigd is
Een grotere backend zoals PostgreSQL kan het overwegen waard zijn wanneer de workload daadwerkelijk meerdere schrijvers van applicaties, meer gelijktijdige activiteit of operationele hulpmiddelen vereist die SQLite niet kan bieden. Deze backend brengt ook migraties, inloggegevens, back-ups, netwerkstoringen en een extra service mee die moet worden hersteld. Een projectdiscussie merkt op dat gelijktijdigheid op commerciële schaal buiten het normale doel van Jellyfin voor thuisservers valt. Importeer daarom geen aannames over enterprise-verbindingen in een thuisimplementatie (gerichte discussie over gelijktijdigheid).
Als je een backendwijziging test, houd dan de oorspronkelijke database en implementatiedefinitie beschikbaar, zodat je de vergelijking kunt terugdraaien zonder de applicatiestatus te wijzigen.
Vergelijk wachttijden op vergrendelingen met de opslaglatentie tijdens dezelfde scan. Als de database snel is maar schrijvers wachten, zijn planning en eigenaarschap—niet een extra verbinding—de volgende regelknoppen.
Valideer de gekozen configuratie
Herstart elke container, voer de oorspronkelijke gelijktijdige workload uit en bevestig dat wachttijden op vergrendelingen, latentie, gebruikersacties en back-ups binnen de geaccepteerde grens blijven. Stop met finetunen wanneer de database de workload voltooit met één duidelijke eigenaar en een getest herstelpad. Schakel hulp in wanneer corruptie, herhaalde vergrendelingsfouten of niet-ondersteunde schrijfbewerkingen door meerdere instanties blijven optreden na de omkeerbare controles van planning en opslag.
Voer de test uit met één schrijver en voeg daarna de normale gelijktijdige containerworkload toe. Zo stel je vast of elke extra schrijver de wachtrijtijd verhoogt of alleen onschadelijke leesbewerkingen toevoegt.
Als je een backendwijziging test, houd dan de oorspronkelijke database en implementatiedefinitie beschikbaar, zodat je de vergelijking kunt terugdraaien zonder de applicatiestatus te wijzigen.
Ondersteuning & Tips
Meer om te lezen

Dubbele taken of imports in Jellyfin voorkomen
Dubbel werk ontstaat meestal door overlappende planners of meer dan één schrijver; wijs één verantwoordelijke, één pad en één voltooiingscontrole aan.

Jellyfin repareren nadat het databasevolume vol is geraakt
Stop met schrijven, behoud de database- en WAL-bestanden, maak ruimte vrij zonder de status blindelings te verwijderen en controleer vervolgens de integriteit en de...

Waarom maakt Jellyfin ontbrekende bestanden opnieuw aan met de verkeerde eigenaar?
Verkeerd eigenaarschap ontstaat meestal door een identiteitsverschil of een ander importpad; controleer de actieve containergebruiker voordat je de machtigingen wijzigt.

