Ja, Plex kan vaak een GPU delen met een andere Docker-container, maar door hetzelfde apparaat aan beide containers bloot te stellen, wordt de prestaties voor geen van beide werklasten gereserveerd of gegarandeerd.
De keuze hangt af van de GPU, Linux-driver, container-runtime, het type werklast en de manier waarop elke toepassing video-engines, rekenkracht en geheugen gebruikt. Intel-geïntegreerde grafische chips worden vaak beschikbaar gemaakt via Linux-apparaatknooppunten zoals /dev/dri, terwijl NVIDIA-containers de NVIDIA-container-runtime of Docker GPU-reserveringen gebruiken. Configureer eerst de toegang, voer Plex en de tweede werklast daarna gelijktijdig uit en controleer of Plex onder de belasting die voor jou relevant is nog steeds hardwaretranscodering gebruikt.
Bevestig eerst dat Plex de GPU zelfstandig kan gebruiken
Voer voordat je het delen test één geforceerde Plex-transcodering uit terwijl de andere GPU-werklast is gestopt. Plex moet hardwareversnelling voor de stream melden en de host moet de verwachte video-engine- of GPU-activiteit tonen. Als Plex het apparaat alleen al niet kan gebruiken, maakt een extra container de diagnose alleen maar onduidelijker.
In de handleiding voor hardwareversnelde streaming van Plex staat dat Docker-implementaties het relevante kernelapparaat aan de container moeten blootstellen voor hardwareversnelling. Gebruik de huidige methode voor jouw platform in plaats van ervan uit te gaan dat een GPU die door de host wordt gedetecteerd automatisch zichtbaar is in Plex.
Noteer de starttijd van de transcodering, het CPU-gebruik, het GPU-/video-enginegebruik en de afspeelstabiliteit als nulmeting. Zo krijg je een controlemeting voor de deeltest. Zonder een goede nulmeting kun je niet vaststellen of latere problemen door concurrentie of door de oorspronkelijke GPU-configuratie van Plex worden veroorzaakt.
Stel hetzelfde apparaat doelbewust beschikbaar aan de tweede container
Voor NVIDIA kan Docker Compose GPU's per aantal of apparaat-ID reserveren voor een service. Als twee services zo zijn geconfigureerd dat ze dezelfde GPU zien, kan de runtime dat apparaat aan beide blootstellen; dit is toegangsbeheer, geen contract voor exclusieve prestaties. Bij Intel of andere Linux-apparaten kunnen beide containers toegang krijgen tot hetzelfde relevante apparaatknooppunt wanneer de driver gelijktijdig gebruik toestaat.
De documentatie over GPU-ondersteuning in Compose laat zien hoe services GPU-toegang aanvragen en specifieke apparaat-ID's selecteren. Gebruik een specifiek apparaat als je meerdere GPU's hebt, zodat Plex tijdens het testen niet ongemerkt tussen apparaten wisselt.
Controleer de machtigingen na elke recreatie van een container of wijziging van een app-sjabloon. Dat een tweede container werkt, bewijst niet dat Plex nog steeds toegang tot het apparaat heeft, en een Plex-instelling waarin hardwareversnelling is ingeschakeld, bewijst niet dat de actieve stream deze ook gebruikt.
Test beide werklasten samen en let op de eerste hulpbron die verzadigd raakt
Start de tweede werklast op een representatief niveau en forceer vervolgens dezelfde Plex-transcodering als bij de nulmeting. Vergelijk de afspeelstabiliteit, transcodeersnelheid, GPU-geheugen, benutting van de video-engine en eventuele terugval naar de CPU. Als Plex pas overschakelt van hardware naar software of begint te bufferen wanneer de andere werklast actief is, heb je te maken met concurrentie en niet met een onverklaarbaar compatibiliteitsprobleem.
De ZimaSpace-gids voor GPU-controles vooraf raadt aan niet alleen de apparaatherkenning te controleren, maar ook de containertoegang en of opslag, back-ups en mediataken responsief blijven onder de gecombineerde werklast. Die systeembrede test is vooral belangrijk op een NAS waarop Plex niet de enige relevante service is.
Als de werklasten verschillende GPU-engines gebruiken, kan delen goed werken; als beide concurreren om dezelfde video-encodeer-/decodeer-engines, hetzelfde geheugen of dezelfde stroom- en thermische marge, kunnen de prestaties sterk afnemen. Ga er niet van uit dat een lage algemene ‘GPU-percentagescore’ betekent dat de specifieke video-engine die Plex nodig heeft beschikbaar is.
Bepaal wanneer delen niet langer een goede oplossing is
Behoud de gedeelde configuratie als Plex hardwaremodus blijft gebruiken, de tweede container zijn doel haalt en de NAS responsief blijft onder de gecombineerde belasting. Herhaal de test na een herstart van Plex en nadat de tweede container opnieuw is gestart, zodat apparaattoewijzingen en machtigingen normale levenscyclusgebeurtenissen overleven.
Als concurrentie slechts af en toe voorkomt, plan de zware tweede werklast dan buiten de piekuren voor streaming of stel limieten op applicatieniveau in. Als beide werklasten gelijktijdig hun volledige capaciteit nodig hebben en de ene de andere consequent verdringt, wijs dan een tweede accelerator toe of verplaats één werklast naar een andere host in plaats van kwetsbare prioriteitsaanpassingen te blijven proberen.
Schakel over op probleemoplossing rond de driver of runtime wanneer een van beide containers de GPU verliest, zelfs als de andere is gestopt. Een deelprobleem moet pas worden onderzocht nadat beide toepassingen afzonderlijk toegang tot het apparaat hebben en de fout specifiek bij gelijktijdig gebruik optreedt.
Ondersteuning & Tips
Meer om te lezen

Hoe je kunt bepalen of een Plex-fout door de client of de server wordt veroorzaakt
Reproduceer hetzelfde item op een andere client, vergelijk het sessiepad en verzamel pas serverbewijs nadat de scope heeft uitgewezen waar de fout daadwerkelijk zit.

Plex-cache en tijdelijke opslag voor transcodering configureren
Bescherm de permanente Plex-status door tijdelijke transcodebestanden op geschikte lokale opslag te plaatsen en controleer vervolgens het opruimen, de beschikbare ruimte en het gedrag...

Een back-up van Plex maken zonder een inconsistente database vast te leggen
Gebruik de databaseback-up van Plex voor de kernstatus, of stop Plex voordat je de volledige app-datastructuur kopieert. Test daarna of je de back-up kunt...

