¿Puede Plex compartir una GPU con otro contenedor de Docker?

Eva Wong es la Redactora técnica y manitas residente en ZimaSpace. Una geek de toda la vida con pasión por los homelabs y el software de código abierto, se especializa en traducir conceptos técnicos complejos en guías accesibles y prácticas. Eva cree que el autoalojamiento debe ser divertido, no intimidante. A través de sus tutoriales, empodera a la comunidad para desmitificar las configuraciones de hardware, desde construir su primer NAS hasta dominar los contenedores Docker.

Sí, Plex a menudo puede compartir una GPU con otro contenedor de Docker, pero exponer el mismo dispositivo a ambos contenedores no reserva ni garantiza el rendimiento de ninguna de las dos cargas de trabajo.

La decisión depende de la GPU, el controlador de Linux, el entorno de ejecución de contenedores, el tipo de carga de trabajo y la forma en que cada aplicación utiliza los motores de vídeo, la capacidad de cálculo y la memoria. Los gráficos integrados de Intel suelen exponerse mediante nodos de dispositivo de Linux como /dev/dri, mientras que los contenedores de NVIDIA utilizan el entorno de ejecución de contenedores de NVIDIA o las reservas de GPU de Docker. Configura primero el acceso y, después, ejecuta Plex y la segunda carga de trabajo al mismo tiempo para verificar que Plex siga realizando la transcodificación por hardware con la carga que realmente te interesa.

Confirma primero que Plex puede usar la GPU por sí solo

Antes de probar el uso compartido, ejecuta una transcodificación forzada en Plex con la otra carga de trabajo de GPU detenida. Plex debería indicar que la transmisión utiliza aceleración por hardware y el host debería mostrar actividad en el motor de vídeo o en la GPU correspondiente. Si Plex no puede usar el dispositivo por sí solo, añadir otro contenedor solo dificultará el diagnóstico.

La guía de Plex sobre transmisión acelerada por hardware explica que las implementaciones de Docker deben exponer el dispositivo del kernel correspondiente al contenedor para habilitar la aceleración por hardware. Utiliza el método de dispositivos actual para tu plataforma en lugar de asumir que una GPU detectada por el host será visible automáticamente en Plex.

Registra el tiempo inicial de la transcodificación, el uso de la CPU, el uso de la GPU o del motor de vídeo y la estabilidad de la reproducción. Esto te proporcionará un resultado de control para la prueba de uso compartido. Sin una línea base limpia, no podrás determinar si los fallos posteriores se deben a la contención o a la configuración original de la GPU de Plex.

Expón deliberadamente el mismo dispositivo al segundo contenedor

En NVIDIA, Docker Compose puede reservar GPU por cantidad o por ID de dispositivo para un servicio. Si dos servicios están configurados para ver la misma GPU, el entorno de ejecución puede exponer ese dispositivo a ambos; esto es control de acceso, no un contrato de rendimiento exclusivo. En dispositivos Intel u otros dispositivos de Linux, ambos contenedores pueden recibir acceso al mismo nodo de dispositivo correspondiente cuando el controlador permite el uso simultáneo.

La documentación de Docker sobre la compatibilidad de GPU en Compose muestra cómo los servicios solicitan acceso a la GPU y seleccionan ID de dispositivos concretos. Utiliza un dispositivo específico cuando tengas varias GPU para evitar que Plex cambie de dispositivo silenciosamente durante la prueba de uso compartido.

Comprueba los permisos después de recrear cualquier contenedor o cambiar una plantilla de aplicación. Que el segundo contenedor funcione no demuestra que Plex siga teniendo acceso al dispositivo, y que la configuración de Plex indique que la aceleración por hardware está habilitada no demuestra que la transmisión activa la esté utilizando.

Prueba ambas cargas de trabajo a la vez y observa el primer recurso que se sature

Inicia la segunda carga de trabajo a un nivel representativo y, después, fuerza la misma transcodificación de Plex que utilizaste para la línea base. Compara la estabilidad de la reproducción, la velocidad de transcodificación, la memoria de la GPU, el uso del motor de vídeo y cualquier uso alternativo de la CPU. Si Plex cambia del modo por hardware al modo por software o empieza a almacenar en búfer solo cuando la otra carga de trabajo está activa, el resultado indica contención y no un misterio de compatibilidad.

La guía de comprobación previa de ZimaSpace para GPU recomienda verificar no solo la detección del dispositivo, sino también el acceso del contenedor y si el almacenamiento, las copias de seguridad y las tareas multimedia siguen respondiendo con la carga combinada. Esta prueba de todo el sistema es especialmente importante en un NAS, donde Plex no es el único servicio relevante.

Si las cargas de trabajo utilizan motores de GPU diferentes, el uso compartido puede funcionar bien; si ambas compiten por los mismos motores de codificación o decodificación de vídeo, la memoria o el margen de potencia y temperatura, el rendimiento puede degradarse notablemente. No asumas que un porcentaje general bajo de “GPU” significa que el motor de vídeo específico que Plex necesita está libre.

-15% OFF

Establece el límite a partir del cual compartir ya no es una buena opción

Mantén la configuración compartida si Plex permanece en modo de hardware, el segundo contenedor alcanza su objetivo y el NAS sigue respondiendo con la carga combinada. Repite la prueba después de reiniciar Plex y después de reiniciar el segundo contenedor para asegurarte de que las asignaciones de dispositivos y los permisos sobreviven a los ciclos de vida normales.

Si la contención es ocasional, programa la carga de trabajo intensa fuera de las horas de mayor uso de la transmisión o añade límites a nivel de aplicación. Si ambas cargas deben ejecutarse simultáneamente al máximo y una de ellas priva constantemente de recursos a la otra, dedica un segundo acelerador o traslada una de las cargas a otro host en lugar de intentar ajustar prioridades frágiles.

Recurre a la resolución de problemas del controlador o del entorno de ejecución cuando alguno de los contenedores pierda la GPU incluso con el otro detenido. Un problema de uso compartido solo debe diagnosticarse después de confirmar que ambas aplicaciones pueden acceder al dispositivo de forma independiente y que el fallo aparece específicamente durante el uso simultáneo.

Soporte y Consejos

Más para leer

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.