es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo utiliza el contenedor YARN la CPU asignada?

Estoy teniendo dificultades para entender cómo están limitados los contenedores de Yarn en cuanto a los recursos asignados, especialmente la CPU.

Estoy ejecutando trabajos de Spark o Flink en el clúster YARN. Cada ejecutor o administrador de tareas solicita un contenedor de Yarn que tiene 1 CPU. Básicamente, el número de contenedores es igual al número de CPUs disponibles en el host.

Entiendo que YARN monitorea el uso de memoria y, si el contenedor excede el límite, envía una señal de finalización. Me pregunto cómo funciona realmente la programación de CPU.

Mi trabajo de JVM en el contenedor YARN (1 CPU) puede intentar crear varios subprocesos de trabajo con uso intensivo de CPU. ¿Se limitará JVM a 1 núcleo de CPU para ejecutar esos subprocesos o tomará recursos de otros contenedores? ¿Técnicamente, un contenedor YARN puede afectar el rendimiento de la CPU de otros contenedores?

Supongamos que tengo 10 CPU en mi host y he creado un solo contenedor. ¿El rendimiento de la CPU de ese contenedor será del 10% del rendimiento de la CPU del host?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Los contenedores de YARN están limitados en términos de asignación de la CPU. Cada contenedor se asigna un cierto número de núcleos de CPU que puede utilizar para ejecutar tareas. En el caso de trabajos de Spark o Flink, cada ejecutor o administrador de tareas solicita un contenedor de yarn que tenga 1 CPU.

    La planificación de CPU en YARN se basa en el concepto de CPU compartida. Se asigna a cada contenedor un cierto número de CPU compartidas, lo que determina su prioridad relativa para la asignación de CPU. El número de CPU compartidas asignadas a un contenedor se basa en el número de CPUs disponibles en el host y el número total de contenedores en ejecución en el host.

    La JVM que se ejecuta en un contenedor de YARN con 1 CPU puede crear varios hilos de trabajo con carga de CPU, pero estará limitada a usar solo ese núcleo de CPU para la ejecución. No puede robar recursos de otros contenedores ni afectar su rendimiento de CPU.

    Si se crea un único contenedor de YARN en un host con 10 núcleos de CPU, su rendimiento de CPU estará limitado al 10% del rendimiento de CPU del host, suponiendo que no haya otros contenedores en ejecución en el host. Sin embargo, si hay otros contenedores en ejecución en el host, el rendimiento de CPU de cada contenedor dependerá del número de CPU compartidas asignadas a su contenedor y el número de CPU compartidas asignadas a otros contenedores.

Comments are closed.