Optimera åtkomsten till Jellyfin-databasen för samtidiga containrar genom att först säkerställa att databasen har en enda ägare och därefter mäta väntetider för lås, skrivtoppar, lagringslatens och överlappande arbetsbelastning.
Är det flera containrar som öppnar samma Jellyfin-databas, eller är en Jellyfin-container långsam under skanningar och användaraktivitet? Öka inte antalet anslutningar på måfå. Identifiera databastyp, aktiva skrivare, monteringsplats, säkerhetskopieringsmetod och den exakta åtgärd som väntar innan du ändrar backend eller anslutningspool.
Fastställ om låsning eller lagring är begränsningen
Registrera meddelanden om att databasen är upptagen eller låst, transaktionernas varaktighet, I/O-latens, CPU-väntetid och samtidiga uppgifter som körs samtidigt. SQLite tillåter samtidiga läsningar men serialiserar skrivningar, så många skrivare kan förvandla en kort metadatadatering till en kö (SQLite:s låsningsbeteende).
Flytta databasen till snabb lokal lagring endast som ett kontrollerat test. Om väntetiderna för lås kvarstår medan lagringslatensen minskar, beror problemet på överlappande skrivningar eller databasens utformning, inte enbart på disken.
Jämför väntetider för lås med lagringslatensen under samma skanning. Om databasen är snabb men skrivare väntar, är schemaläggning och ägarskap – inte ytterligare en anslutning – nästa kontrollpunkt.
Tilldela databasägarskap och schemalägg skrivningar
Endast en Jellyfin-instans bör äga en viss applikationsdatabas, såvida inte den backend och distribution som stöds uttryckligen erbjuder samordning mellan flera instanser. Förhindra att skanningar, metadatauppdateringar, importer, säkerhetskopieringar och underhåll startar samtidigt. Använd en containeridentitet och en beständig sökväg, så att en omstart inte skapar en andra databas.
Validera genom att köra en skanning, därefter en användarbelastning och sedan den normala kombinationen av samtidiga aktiviteter. Jämför väntetider för lås och slutförandetid efter att varje ytterligare skrivare har introducerats.
Kör testet med en skrivare och lägg sedan till den normala samtidiga containerbelastningen. Då ser du om varje ytterligare skrivare ökar kötiden eller bara lägger till ofarliga läsningar.
Avgör när en annan backend är motiverad
En kraftfullare backend som PostgreSQL kan vara värd att utvärdera när arbetsbelastningen faktiskt kräver flera applikationsskrivare, större samtidig aktivitet eller driftverktyg som SQLite inte kan tillhandahålla. Den medför också migreringar, autentiseringsuppgifter, säkerhetskopieringar, nätverksfel och ytterligare en tjänst som måste återställas. En projektdiskussion påpekar att samtidighet i kommersiell skala ligger utanför Jellyfins normala målgrupp för hemservrar, så importera inte antaganden om företagsanslutningar till en hushållsdistribution (avgränsad diskussion om samtidighet).
Om ett backendbyte testas, behåll den ursprungliga databasen och distributionsdefinitionen tillgängliga, så att jämförelsen kan rullas tillbaka utan att applikationens tillstånd ändras.
Jämför väntetider för lås med lagringslatensen under samma skanning. Om databasen är snabb men skrivare väntar, är schemaläggning och ägarskap – inte ytterligare en anslutning – nästa kontrollpunkt.
Validera den valda konfigurationen
Starta om alla containrar, kör den ursprungliga samtidiga arbetsbelastningen och bekräfta att väntetider för lås, latens, användaråtgärder och säkerhetskopieringar fortfarande ligger inom den accepterade gränsen. Sluta finjustera när databasen slutför arbetsbelastningen med en tydlig ägare och en testad återställningsväg. Eskalera när korruption, upprepade låsfel eller skrivningar från flera instanser som inte stöds kvarstår efter de reversibla kontrollerna av schemaläggning och lagring.
Kör testet med en skrivare och lägg sedan till den normala samtidiga containerbelastningen. Då ser du om varje ytterligare skrivare ökar kötiden eller bara lägger till ofarliga läsningar.
Om ett backendbyte testas, behåll den ursprungliga databasen och distributionsdefinitionen tillgängliga, så att jämförelsen kan rullas tillbaka utan att applikationens tillstånd ändras.
Support och tips
Mer att läsa

Så förhindrar du dubbla jobb eller importer i Jellyfin
Dubblet arbete beror vanligtvis på överlappande schemaläggare eller mer än en skrivande komponent; utse en ansvarig, en väg och en kontroll av att arbetet...

Så reparerar du Jellyfin när dess databasvolym blir full
Stoppa skrivningar, bevara databasen och WAL-filerna, frigör utrymme utan att blint radera tillstånd och verifiera sedan integriteten och den ursprungliga arbetsbelastningen.

Varför återskapar Jellyfin saknade filer med fel ägare?
Felaktigt ägarskap beror vanligtvis på en identitetskonflikt eller en annan importsökväg; verifiera den aktiva containeranvändaren innan du ändrar behörigheter.

