Perché la generazione delle miniature riempie lo spazio di archiviazione delle app di un media server?

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

La generazione delle miniature riempie lo spazio di archiviazione dell’app perché il server crea molte immagini derivate e le salva in un percorso scrivibile per metadati o cache.

Una libreria multimediale può conservare video di diversi terabyte su un pool HDD, mentre il container collega configurazione, metadati e cache a un SSD o a un volume di avvio molto più piccolo. Le immagini dei capitoli, le anteprime trickplay, i poster, gli sfondi e i file temporanei di estrazione aumentano in base al tempo di utilizzo della libreria e alle impostazioni di generazione, non solo alle dimensioni dei file originali. La soluzione sicura inizia individuando il tipo e il percorso esatti dei derivati prima di eliminare qualsiasi elemento ancora previsto dal database.

Individua la directory che sta effettivamente crescendo

Misura separatamente le directory di configurazione, cache, metadati, transcodifica e file temporanei dell’applicazione multimediale. Ordina le sottodirectory in base allo spazio allocato e all’orario di modifica più recente mentre è in esecuzione un’attività di generazione delle miniature.

L’estrazione delle immagini dei capitoli è descritta esplicitamente dalle stringhe dell’interfaccia di Jellyfin come lenta, impegnativa per le risorse e potenzialmente capace di richiedere diversi gigabyte di spazio.

Verifica se la crescita avviene nel bind mount dell’host, in un volume denominato o nel livello scrivibile del container. Se cresce il livello del container, correggi prima la persistenza; altrimenti lo spazio potrebbe non essere più visibile dall’app, continuando però a consumare lo spazio di sistema di Docker.

Identifica la funzione delle immagini che ha creato i file

Separa i normali poster e sfondi dalle immagini dei capitoli, dalle anteprime trickplay, dalle miniature di anteprima dei video, dagli indicatori delle introduzioni e dalle immagini generate dai plugin. Ogni funzione ha un’attivazione e una regola di conservazione diverse.

La funzione trickplay crea campioni visivi ripetuti lungo la timeline di un video, così i client possono mostrare anteprime durante lo spostamento. Le griglie di immagini risultanti dipendono soprattutto dalla durata complessiva, dall’intervallo di campionamento, dalla risoluzione, dalla qualità e dalla disposizione dei riquadri, più che dal fatto che la sorgente sia a 1080p o in 4K.

Esegui manualmente un’attività pianificata osservando la directory di destinazione. Associa i nuovi nomi dei file e le voci del database alla funzione che li ha prodotti. Non disabilitare tutti i provider di metadati quando è responsabile una sola attività di anteprima.

Controlla intervallo, risoluzione, qualità e ambito della libreria

Annota la larghezza delle miniature, l’intervallo di campionamento, la qualità JPEG o WebP, le dimensioni dei riquadri, il numero di thread e le librerie incluse nella generazione. Intervalli più brevi e immagini più grandi creano più pixel archiviati per ogni ora di video.

La generazione può anche ripartire dopo una modifica delle impostazioni o un aggiornamento. Un problema di Jellyfin descrive utenti che non riuscivano a impedire il ritorno dei dati trickplay generati in precedenza perché la disattivazione della funzione non aveva eliminato l’output esistente.

Modifica una sola impostazione su una piccola libreria di prova e confronta i byte generati per ogni ora di contenuti. Usa questo rapporto misurato per stimare l’intera libreria prima di avviare un’altra attività di estrazione completa.

Modifica dell’impostazione Probabile effetto sullo spazio Compromesso
Intervallo di campionamento più lungo Meno immagini Anteprime durante lo spostamento meno precise
Larghezza delle miniature ridotta File più piccoli Immagini di anteprima sulla TV meno nitide
Qualità delle immagini ridotta File più piccoli Più artefatti di compressione
Ambito della libreria più ristretto Minore spazio totale Nessuna anteprima per le librerie escluse

Scegli impostazioni adatte agli schermi e al comportamento di spostamento effettivi dei client, invece di generare derivati della massima qualità per ogni titolo.

Cerca set di miniature obsoleti o orfani

Confronta gli elementi multimediali attivi con le directory generate dopo la sostituzione, la ridenominazione, lo spostamento o la rimozione dei file. I vecchi set di anteprime possono rimanere quando al nuovo file viene assegnato un ID elemento o un nome di output diverso.

Un report di Jellyfin mostra che le immagini trickplay obsolete archiviate accanto ai contenuti multimediali non venivano eliminate quando venivano generate nuove anteprime, lasciando dati trickplay obsoleti accanto al set corrente.

Usa prima l’attività di pulizia supportata dall’applicazione e verifica di avere un backup del database dei metadati. Se è necessaria una rimozione manuale, prova con un singolo elemento orfano e aggiornarlo prima di eliminare grandi alberi di directory i cui riferimenti non sono noti.

Verifica se le immagini devono essere nell’archiviazione dell’app o accanto ai contenuti

Alcuni server multimediali possono salvare immagini e dati trickplay accanto alla libreria, mentre altri conservano i derivati collegati al database nei metadati dell’app. Spostare il percorso modifica backup, permessi, migrazione e comportamento dei contenuti multimediali in sola lettura.

Salvare le anteprime accanto ai contenuti può migliorare la portabilità durante la migrazione, ma può anche moltiplicare i piccoli file su una grande condivisione HDD e richiedere l’accesso in scrittura alla libreria. Un problema di migrazione di Jellyfin mostra che i file trickplay archiviati localmente potrebbero non trasferirsi correttamente tra istanze.

Mantieni i derivati collegati al database e quelli soggetti a frequenti modifiche su un volume dell’app dimensionato appositamente, a meno che l’applicazione non supporti pienamente le immagini locali portabili. Mantieni la condivisione dei contenuti in sola lettura quando l’accesso in scrittura non è necessario per la disposizione scelta.

Sposta il volume dell’app senza separare lo stato del database

Se le impostazioni sono ragionevoli ma il volume dell’app è sottodimensionato, arresta il server multimediale e sposta l’intera configurazione, i metadati e le unità della cache secondo il progetto dei mount persistenti del container. Mantieni proprietari, ACL, file del database e collegamenti simbolici.

L’articolo di ZimaSpace sui volumi SSD per app destinati a metadati e miniature spiega perché questi carichi di lavoro con file di piccole dimensioni traggono vantaggio dall’archiviazione veloce, mentre i contenuti multimediali originali di grandi dimensioni possono rimanere sugli HDD.

Non spostare solo la cartella delle immagini più grande lasciando indietro i percorsi del database, a meno che l’applicazione non supporti questa separazione. Avvia l’istanza migrata in isolamento e verifica che le vecchie miniature vengano visualizzate correttamente prima di generarne di nuove.

Pulisci in sicurezza e stabilisci una baseline di crescita

Metti in pausa le attività delle miniature, esegui il backup del database dell’applicazione e registra il conteggio attuale dei file e i byte per tipo di derivato. Rimuovi solo l’output sicuramente obsoleto oppure usa i controlli di eliminazione e rigenerazione supportati dall’applicazione.

Un SSD pieno può influire su aspetti diversi dalle miniature. Un problema di Jellyfin collega un SSD esaurito a un presunto danneggiamento del database e a una visualizzazione incompleta della libreria, mostrando perché l’esaurimento dello spazio libero può mettere a rischio lo stato dell’app.

Dopo la pulizia, esegui la generazione su una libreria, misura la crescita giornaliera e imposta avvisi prima che il volume dell’app raggiunga la soglia di riserva. La riparazione è completa quando le anteprime previste funzionano, i dati obsoleti non ricompaiono e la crescita dello spazio corrisponde all’intervallo, alla risoluzione, alla qualità e all’ambito della libreria scelti.

Supporto e consigli

Altro da leggere

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.