Ja, Plex kann sich häufig eine GPU mit einem anderen Docker-Container teilen. Wenn dasselbe Gerät jedoch beiden Containern bereitgestellt wird, reserviert oder garantiert das für keine der beiden Anwendungen eine bestimmte Leistung.
Die Entscheidung hängt von der GPU, dem Linux-Treiber, der Container-Laufzeitumgebung, der Art der Arbeitslast und davon ab, wie die jeweilige Anwendung Video-Engines, Rechenleistung und Speicher nutzt. Intel-Integrierte-Grafikeinheiten werden unter Linux häufig über Gerätenodes wie /dev/dri bereitgestellt, während NVIDIA-Container die NVIDIA-Container-Laufzeitumgebung oder Docker-GPU-Reservierungen verwenden. Konfigurieren Sie den Zugriff zunächst und führen Sie anschließend Plex und die zweite Arbeitslast gemeinsam aus. Überprüfen Sie dabei, ob Plex unter der für Sie relevanten Belastung weiterhin Hardware-Transkodierung verwendet.
Bestätigen Sie zunächst, dass Plex die GPU allein verwenden kann
Bevor Sie die gemeinsame Nutzung testen, starten Sie eine erzwungene Plex-Transkodierung, während die andere GPU-Arbeitslast beendet ist. Plex sollte für den Stream die Hardwarebeschleunigung melden, und der Host sollte die erwartete Aktivität der Video-Engine oder GPU anzeigen. Wenn Plex das Gerät allein nicht verwenden kann, wird die Fehlersuche durch einen weiteren Container nur unübersichtlicher.
Der Leitfaden von Plex zur hardwarebeschleunigten Wiedergabe erklärt, dass Docker-Bereitstellungen das entsprechende Kernelgerät für den Container bereitstellen müssen, damit die Hardwarebeschleunigung funktioniert. Verwenden Sie die aktuelle Gerätemethode für Ihre Plattform, anstatt davon auszugehen, dass eine vom Host erkannte GPU automatisch in Plex sichtbar ist.
Notieren Sie die Startzeit der Transkodierung, die CPU-Auslastung, die GPU- bzw. Video-Engine-Auslastung und die Wiedergabestabilität als Ausgangswerte. Damit erhalten Sie einen Kontrollwert für den Test der gemeinsamen Nutzung. Ohne eine saubere Ausgangsbasis können Sie nicht feststellen, ob spätere Fehler durch eine Ressourcenkonkurrenz oder durch die ursprüngliche Plex-GPU-Konfiguration verursacht werden.
Stellen Sie dasselbe Gerät dem zweiten Container gezielt bereit
Für NVIDIA kann Docker Compose GPUs für einen Dienst nach Anzahl oder Geräte-ID reservieren. Wenn zwei Dienste so konfiguriert sind, dass sie dieselbe GPU sehen, kann die Laufzeitumgebung dieses Gerät beiden bereitstellen. Das regelt den Zugriff, ist jedoch keine Garantie für exklusive Leistung. Bei Intel oder anderen Linux-Geräten kann beiden Containern Zugriff auf denselben relevanten Gerätenode gewährt werden, sofern der Treiber die parallele Nutzung zulässt.
Die Dokumentation zur GPU-Unterstützung in Compose zeigt, wie Dienste GPU-Zugriff anfordern und bestimmte Geräte-IDs auswählen. Verwenden Sie bei mehreren GPUs ein bestimmtes Gerät, damit Plex während des Tests der gemeinsamen Nutzung nicht unbemerkt zwischen Geräten wechselt.
Überprüfen Sie die Berechtigungen nach jeder Neuerstellung eines Containers oder jeder Änderung einer App-Vorlage. Dass ein zweiter Container funktioniert, beweist nicht, dass Plex weiterhin Zugriff auf das Gerät hat. Ebenso beweist eine aktivierte Plex-Einstellung für Hardwarebeschleunigung nicht, dass der aktive Stream diese tatsächlich verwendet.
Testen Sie beide Arbeitslasten gemeinsam und beobachten Sie die zuerst ausgelastete Ressource
Starten Sie die zweite Arbeitslast auf einem realistischen Niveau und erzwingen Sie anschließend dieselbe Plex-Transkodierung wie beim Ausgangstest. Vergleichen Sie die Wiedergabestabilität, Transkodierungsgeschwindigkeit, den GPU-Speicher, die Auslastung der Video-Engine und einen möglichen Wechsel zur CPU. Wenn Plex erst dann von Hardware- auf Software-Transkodierung wechselt oder die Wiedergabe puffert, wenn die andere Arbeitslast aktiv ist, handelt es sich um ein Ergebnis der Ressourcenkonkurrenz und nicht um ein ungeklärtes Kompatibilitätsproblem.
Der ZimaSpace-Leitfaden zur GPU-Vorprüfung empfiehlt, nicht nur die Geräteerkennung, sondern auch den Containerzugriff sowie die Reaktionsfähigkeit von Speicher, Backups und Medienaufgaben unter der kombinierten Arbeitslast zu überprüfen. Dieser ganzheitliche Systemtest ist besonders auf einem NAS wichtig, auf dem Plex nicht der einzige relevante Dienst ist.
Wenn die Arbeitslasten unterschiedliche GPU-Engines verwenden, kann die gemeinsame Nutzung gut funktionieren. Wenn beide jedoch um dieselben Video-Encode-/Decode-Engines, denselben Speicher oder dieselben Leistungs- und Temperaturreserven konkurrieren, kann die Leistung stark abfallen. Gehen Sie nicht davon aus, dass ein niedriger allgemeiner „GPU-Prozentwert“ bedeutet, dass die von Plex benötigte Video-Engine frei ist.
Legen Sie fest, wann die gemeinsame Nutzung nicht mehr sinnvoll ist
Behalten Sie die gemeinsam genutzte Konfiguration bei, wenn Plex weiterhin im Hardwaremodus arbeitet, der zweite Container sein Ziel erreicht und das NAS unter der kombinierten Last reaktionsfähig bleibt. Wiederholen Sie den Test nach einem Neustart von Plex und nach einem Neustart des zweiten Containers, damit Gerä Zuordnungen und Berechtigungen auch bei normalen Lebenszyklusereignissen erhalten bleiben.
Wenn die Ressourcenkonkurrenz nur gelegentlich auftritt, planen Sie die intensive zweite Arbeitslast außerhalb der Zeiten mit besonders vielen Streams oder setzen Sie Limits auf Anwendungsebene. Wenn beide Arbeitslasten gleichzeitig ihre volle Leistung benötigen und eine die andere regelmäßig ausbremst, sollten Sie einen zweiten Beschleuniger einsetzen oder eine der Arbeitslasten auf einen anderen Host verschieben, statt fragile Prioritätseinstellungen zu verfolgen.
Beginnen Sie mit der Fehlersuche bei Treiber oder Laufzeitumgebung, wenn einer der beiden Container die GPU selbst dann verliert, wenn der andere beendet ist. Ein Problem der gemeinsamen Nutzung sollte erst untersucht werden, nachdem beide Anwendungen unabhängig voneinander auf das Gerät zugreifen können und der Fehler ausdrücklich bei gleichzeitiger Nutzung auftritt.
Support & Tipps
Mehr zum Lesen

So erkennst du, ob ein Plex-Fehler vom Client oder vom Server verursacht wird
Reproduziere dasselbe Element auf einem anderen Client, vergleiche den Sitzungspfad und sammle Serverbelege erst, nachdem der Geltungsbereich dir gezeigt hat, wo der Fehler tatsächlich...

So konfigurierst du den Plex-Cache und den temporären Transcodierungs-Speicher
Schütze den persistenten Plex-Zustand, indem du temporäre Transcodierungsdateien auf geeignetem lokalem Speicher ablegst, und überprüfe anschließend die Bereinigung, den freien Speicherplatz und das Verhalten...

So sichern Sie Plex, ohne eine inkonsistente Datenbank zu erfassen
Verwende für den Kernstatus das Datenbank-Backup von Plex oder stoppe Plex, bevor du den gesamten App-Datenbaum kopierst. Teste anschließend die Wiederherstellbarkeit, statt einer Live-Dateikopie...

