Sì, Plex può spesso condividere una GPU con un altro container Docker, ma esporre lo stesso dispositivo a entrambi i container non riserva né garantisce le prestazioni per nessuno dei due carichi di lavoro.
La decisione dipende dalla GPU, dal driver Linux, dal runtime dei container, dal tipo di carico di lavoro e dal modo in cui ciascuna applicazione utilizza i motori video, le risorse di calcolo e la memoria. La grafica integrata Intel viene comunemente esposta tramite nodi di dispositivo Linux come /dev/dri, mentre i container NVIDIA utilizzano il runtime per container NVIDIA o le prenotazioni GPU di Docker. Configura prima l’accesso, quindi esegui Plex e il secondo carico di lavoro insieme e verifica che Plex continui a eseguire la transcodifica hardware con il carico che ti interessa realmente.
Conferma prima che Plex possa usare la GPU da solo
Prima di testare la condivisione, esegui una transcodifica Plex forzata con l’altro carico di lavoro GPU arrestato. Plex dovrebbe indicare l’accelerazione hardware per lo streaming e l’host dovrebbe mostrare l’attività prevista del motore video o della GPU. Se Plex non riesce a usare il dispositivo da solo, aggiungere un altro container renderà soltanto più difficile la diagnosi.
La guida di Plex allo streaming con accelerazione hardware spiega che le distribuzioni Docker devono esporre al container il dispositivo kernel pertinente affinché l’accelerazione hardware funzioni. Usa il metodo attuale per il dispositivo della tua piattaforma invece di presumere che una GPU rilevata dall’host sia automaticamente visibile in Plex.
Registra il tempo di avvio della transcodifica di riferimento, l’utilizzo della CPU, l’utilizzo della GPU e del motore video e la stabilità della riproduzione. Otterrai così un risultato di controllo per il test di condivisione. Senza una base di riferimento pulita, non puoi determinare se gli errori successivi dipendano dalla contesa o dalla configurazione GPU originale di Plex.
Esponi deliberatamente lo stesso dispositivo al secondo container
Per NVIDIA, Docker Compose può riservare le GPU in base al numero o all’ID del dispositivo per un servizio. Se due servizi sono configurati per vedere la stessa GPU, il runtime può esporre quel dispositivo a entrambi; si tratta di controllo degli accessi, non di una garanzia di prestazioni esclusive. Per i dispositivi Intel o altri dispositivi Linux, entrambi i container possono ricevere l’accesso allo stesso nodo di dispositivo pertinente quando il driver consente l’utilizzo simultaneo.
La documentazione di Compose sul supporto GPU mostra come i servizi richiedono l’accesso alla GPU e come indirizzare ID specifici dei dispositivi. Usa un dispositivo specifico quando disponi di più GPU, così Plex non passerà silenziosamente da un dispositivo all’altro durante il test di condivisione.
Controlla le autorizzazioni dopo ogni ricreazione del container o modifica del modello dell’app. Il corretto funzionamento del secondo container non dimostra che Plex disponga ancora dell’accesso al dispositivo, e un’impostazione di Plex che mostra l’accelerazione hardware attiva non dimostra che lo streaming in corso la stia utilizzando.
Testa entrambi i carichi di lavoro insieme e osserva la prima risorsa che raggiunge la saturazione
Avvia il secondo carico di lavoro a un livello rappresentativo, quindi forza la stessa transcodifica Plex usata per il riferimento. Confronta la stabilità della riproduzione, la velocità di transcodifica, la memoria GPU, l’utilizzo del motore video e il ricorso alla CPU. Se Plex passa dalla modalità hardware a quella software o inizia a bufferizzare solo quando l’altro carico di lavoro è attivo, hai rilevato un problema di contesa, non un mistero di compatibilità.
La guida di preconfigurazione GPU di ZimaSpace consiglia di verificare non solo il rilevamento del dispositivo, ma anche l’accesso del container e il fatto che archiviazione, backup e attività multimediali rimangano reattivi con il carico combinato. Questo test dell’intero sistema è particolarmente importante su un NAS, dove Plex non è l’unico servizio rilevante.
Se i carichi di lavoro utilizzano motori GPU diversi, la condivisione può funzionare bene; se entrambi competono per gli stessi motori di codifica o decodifica video, per la memoria o per il margine energetico e termico, le prestazioni possono peggiorare drasticamente. Non presumere che una bassa percentuale complessiva di utilizzo della “GPU” significhi che lo specifico motore video necessario a Plex sia libero.
Stabilisci quando la condivisione non è più una soluzione adatta
Mantieni la configurazione condivisa se Plex rimane in modalità hardware, il secondo container raggiunge il proprio obiettivo e il NAS resta reattivo con il carico combinato. Ripeti il test dopo un riavvio di Plex e dopo il riavvio del secondo container, così verifichi che le mappature dei dispositivi e le autorizzazioni sopravvivano ai normali eventi del ciclo di vita.
Se la contesa è occasionale, pianifica il carico di lavoro più pesante al di fuori degli orari di punta dello streaming oppure aggiungi limiti a livello applicativo. Se entrambi i carichi di lavoro devono funzionare contemporaneamente alla massima intensità e uno finisce costantemente per penalizzare l’altro, dedica un secondo acceleratore oppure sposta un carico di lavoro su un altro host invece di cercare di correggere il problema con impostazioni di priorità fragili.
Passa alla risoluzione dei problemi relativi al driver o al runtime quando uno dei due container perde la GPU anche con l’altro arrestato. Un problema di condivisione dovrebbe essere diagnosticato solo dopo che entrambe le applicazioni sono in grado di accedere al dispositivo in modo indipendente e l’errore si manifesta specificamente durante l’utilizzo simultaneo.
Supporto e consigli
Altro da leggere

Come capire se un errore di Plex proviene dal client o dal server
Riproduci lo stesso elemento su un altro client, confronta il percorso della sessione, quindi raccogli le prove dal server solo dopo che l’ambito ti...

Come configurare la cache di Plex e l’archiviazione temporanea per la transcodifica
Proteggi lo stato persistente di Plex collocando i file temporanei di transcodifica su un’unità locale adatta, quindi verifica la pulizia, lo spazio libero e...

Come eseguire il backup di Plex senza acquisire un database incoerente
Usa il backup del database di Plex per lo stato principale oppure arresta Plex prima di copiare l’intera struttura dei dati dell’app, quindi verifica...

