Waardoor behoudt Jellyfin meer tijdelijke gegevens dan verwacht?

Eva Wong is de Technisch Schrijver en en vaste knutselaar bij ZimaSpace. Een levenslange geek met een passie voor homelabs en open-source software, zij is gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva gelooft dat zelf-hosting leuk moet zijn, niet intimiderend. Met haar tutorials stelt ze de community in staat om hardware-setup te ontrafelen, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Jellyfin kan meer tijdelijke gegevens bewaren dan verwacht, omdat transcoderingen, caches, gegenereerde media-artefacten en opruimtaken allemaal verschillende levenscycli volgen.

Een groeiende cache of tijdelijke map is niet automatisch een lek. Sommige bestanden horen bij actieve sessies, sommige zijn herbruikbare afgeleide gegevens, sommige wachten op een leeftijds- of planningsdrempel en sommige blijven bestaan omdat een taak werd beëindigd voordat de opruiming plaatsvond. Stel eerst vast welk proces de gegevens produceert en welke levenscyclus ze volgen; het verwijderen van een onverklaarde map kan het bewijs verbergen of dure regeneratie afdwingen zonder de oorzaak op te lossen.

De hoofdoorzaak is een mismatch in de levenscyclus, niet simpelweg een grote cache

Tijdelijke gegevens worden verdacht wanneer hun waargenomen levensduur niet langer overeenkomt met de gebeurtenis waardoor ze zijn aangemaakt. Een werkset voor transcodering hoort de afspeelactiviteit te volgen, herbruikbare miniaturen of trickplay-gegevens mogen opzettelijk langer meegaan dan één sessie en bestanden die door opruimbeheer worden beheerd, kunnen blijven bestaan totdat een timer of drempelwaarde verloopt. Dat zijn verschillende afspraken, ook als elk pad er ‘tijdelijk’ uitziet.

Richtlijnen voor het oplossen van problemen met hoog resourcegebruik in Jellyfin maken onderscheid tussen actieve transcodering en ander achtergrondwerk. Daarom moet je eerst actieve transcodering controleren voordat je aanneemt dat achtergebleven bestanden verweesd zijn. Een bestand dat nog een eigenaar en een actieve gebruiker heeft, is niet verouderd alleen omdat het groot is.

De fouttoestand is onverklaarde groei: geen enkele actieve producent heeft de gegevens nodig, geen hergebruikbeleid rechtvaardigt het bewaren ervan en geen opruimregel voorspelt wanneer ze zouden moeten verdwijnen. Zodra alle drie de verklaringen niet opgaan, worden bewaarde tijdelijke gegevens een operationeel defect in plaats van een normale kostenpost van afgeleide mediaverwerking.

De vier oorzaken van bewaarde tijdelijke gegevens

Classificeer bewaarde bestanden op basis van hun producent voordat je ze verwijdert. De nuttige categorieën zijn actieve sessiegegevens, herbruikbare afgeleide artefacten, bestanden die wachten op beleidsgestuurde opruiming en verweesde tussenbestanden die door onderbroken werk zijn achtergelaten. Elke categorie heeft een ander veilig verwijdermoment.

Opruimsystemen op basis van leeftijd laten zien waarom ‘nu niet gebruikt’ niet hetzelfde is als ‘komt in aanmerking voor verwijdering’: bewaren kan gekoppeld zijn aan tijdstempels, regels en geplande controles. Daardoor zijn opruimregels op basis van leeftijd een nuttig model om levenscyclusbeleid te onderscheiden van de directe sessiestatus.

Gebruik de vier onderstaande kenmerken om te bepalen of groei verwacht, vertraagd of verweesd is. Pas geen algemene groottedrempel toe voordat je weet of de map wegwerpbare werkbestanden bevat of herbruikbare artefacten waarvan regeneratie simpelweg opnieuw dezelfde omvang zou creëren.

Oorzaak 1: actieve transcoderingen hebben nog een werkset in gebruik

  • Mechanisme: een actieve of recent beëindigde afspeelsessie schrijft tijdelijke segmenten die nuttig blijven totdat de transcodering deze vrijgeeft.
  • Kenmerkend symptoom: de wijzigingstijd van bestanden en de groei van de map volgen actieve transcoderingen of recente sprongen in de afspeelpositie.
  • ALS–DAN: als de werkset niet langer verandert en wordt vrijgegeven nadat alle transcoderingen zijn beëindigd, behandel deze dan als sessiegebonden en niet als verweesd.

Oorzaak 2: herbruikbare afgeleide artefacten blijven opzettelijk bewaard

  • Mechanisme: miniaturen, trickplay-afbeeldingen, metagegevens of andere gegenereerde representaties worden bewaard omdat toekomstige clients ze opnieuw kunnen gebruiken.
  • Kenmerkend symptoom: bestanden blijven tussen sessies stabiel en worden opnieuw gelezen tijdens het bladeren of zoeken; trickplay- en metagegevensbestanden kunnen zich daardoor meer gedragen als cachebare afgeleide gegevens dan als tijdelijke data voor één sessie.
  • ALS–DAN: als het verwijderen van de bestanden alleen voorspelbare regeneratie activeert zonder de langetermijnomvang te verkleinen, beheer dan het genereren en bewaren ervan in plaats van ze herhaaldelijk te verwijderen.

Oorzaak 3: de opruiming heeft de leeftijds- of planningstrigger nog niet bereikt

  • Mechanisme: de producent is klaar, maar een afzonderlijk opruimproces beheert de verwijdering en voert die later uit.
  • Kenmerkend symptoom: oude bestanden verdwijnen in batches op een vast tijdstip of bij een consistente leeftijdsdrempel, in plaats van onmiddellijk na het afspelen of analyseren.
  • ALS–DAN: als de bewaartermijn overeenkomt met het gedocumenteerde of waargenomen opruimvenster, pas het beleid alleen aan wanneer de beschikbare schijfruimte een korter venster vereist.

Oorzaak 4: onderbroken werk laat verweesde tussenbestanden achter

  • Mechanisme: een proces maakt tijdelijke bestanden aan, maar crasht, wordt beëindigd of verlaat het proces via een pad waarop de opruiming nooit wordt uitgevoerd.
  • Kenmerkend symptoom: verouderde bestanden hebben geen actieve eigenaar, vertonen geen hergebruikspatroon en hebben tijdstempels die rond onderbroken taken zijn gegroepeerd; echte fouten in automatisering laten zien hoe overgeslagen opruiming na een onderbreking grote werkmappen kan laten ontstaan.
  • ALS–DAN: als dezelfde taak na annulering of een fout herhaaldelijk bestanden achterlaat, herstel dan de opruiming bij afsluiten en verwijder vervolgens alleen de bevestigde verweesde set.

Grens van de fout: verwachte bewaring onderscheiden van abnormale groei

Beoordeel dit niet alleen op basis van de mapgrootte. Leg de leeftijdsverdeling van bestanden, recente wijzigingsactiviteit, actieve Jellyfin-sessies, geplande taken en het proces dat elk verdacht bestand nog open heeft vast. Verwachte bewaring heeft een eigenaar of regel; abnormale groei heeft geen van beide of overschrijdt de regel herhaaldelijk.

Bestandssysteemboekhouding kan de diagnose ook misleiden. Op Linux kan een verwijderd bestand blokken blijven gebruiken terwijl een proces het nog open heeft. Daardoor kunnen verwijderde bestanden nog steeds schijfruimte innemen, zelfs nadat het zichtbare pad is verdwenen. Als `df` en de maptotalen niet overeenkomen, controleer dan geopende bestandsdescriptors voordat je nog meer gegevens verwijdert.

De grens wordt overschreden wanneer de producent verdwenen is, het verwachte opruimvenster is verstreken, de bestanden geen herbruikbare afgeleide gegevens zijn en de omvang blijft groeien of na handmatige verwijdering opnieuw toeneemt. Op dat moment behandelt alleen het aanpassen van de cachegrootte het symptoom. Herstel de levenscyclus die de gegevens aanmaakt, sluit, ongeldig maakt of verwijdert.

Maak een register van tijdelijke gegevens voordat je iets opruimt

Maak voor elk groot tijdelijk pad een kort register met: producent, gegevensrol, actieve eigenaar, oudste en nieuwste wijzigingstijd, hergebruikssignaal, verwachte opruimtrigger, huidige omvang en veilige verwijdervoorwaarde. Zo wordt ‘de cache is enorm’ omgezet in toetsbare uitspraken en kun je latere groei vergelijken met een bekende nulmeting.

De uitleg van ZimaSpace over het onderscheid tussen lees- en schrijfbelasting helpt om gegevens die actief worden geproduceerd te onderscheiden van gegevens die alleen opnieuw worden gebruikt. Wanneer het eigenaarschap van een bestand onzeker is, kan Linux-procesinspectie vaststellen welk proces een bestand nog open heeft voordat de opruiming het bewijs verandert.

Voer de opruimbeslissing pas uit wanneer het register een wegwerpbare set identificeert en de producent deze niet langer gebruikt. Verwijder een kleine, bevestigde steekproef, controleer het gedrag van Jellyfin en pas daarna de opruimregel toe. Als de map onmiddellijk weer tot dezelfde stabiele omvang aangroeit, stem dan de producent of het bewaarbeleid af in plaats van een eindeloze verwijdertaak in te plannen.

Veld Vraag
Producent Welke Jellyfin-taak of welk proces heeft de bestanden aangemaakt?
Rol Actieve werkset, herbruikbare afgeleide gegevens, vertraagde opruiming of verweesd?
Eigenaar Heeft een proces de bestanden nog open?
Leeftijd Wanneer zijn de oudste en nieuwste bestanden gewijzigd?
Opruiming Welke gebeurtenis, timer of leeftijdsdrempel zou ze moeten verwijderen?
Veilige actie Welk bewijs maakt verwijdering omkeerbaar en weinig risicovol?

Tech & AI HUB

Meer om te lezen

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.