Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

747
Vistas
¿Cómo puedo numactl membind un proceso dentro del contenedor Docker?

Tengo una CPU Intel Xeon Phi de 64 núcleos con 16 GB de memoria en chip configurada como nodo NUMA 1. Quiero vincular un proceso que se ejecuta dentro de un contenedor Docker a este nodo NUMA, pero falla:

 root@Docker$ sudo numactl --membind 1 python script.py Error: set_mempolicy: Operation not permitted setting membind: Operation not permitted

También traté de vincular toda la nave nodriza de Docker al nodo 1 de NUMA, pero no tuve suerte:

 localhost$ sudo numactl --membind 1 docker run xyz /bin/bash

Esto no da ningún error, pero no muestra la utilización de la memoria en el chip.

Mi pregunta es: ¿Cómo puedo vincular un proceso al nodo 1 de NUMA con éxito? ¡Gracias!

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

  1. Debe obtener qué cpus pertenece a 1 nodo numa:

    $ lscpu | grep node1

    NUMA node1 CPU(s): 8-15,24-31

  2. Crear cpuset para docker:

    $ cgcreate -g cpuset:docker

    $ echo 8-15 > /sys/fs/cgroup/cpuset/docker/cpuset.cpus

  3. Si desea ejecutar solo ciertos contenedores en un nodo NUMA específico:

    cgcreate -g cpuset:my-cgroup

    echo 8-15 > /sys/fs/cgroup/cpuset/my-cgroup/cpuset.cpus

  4. Docker permite colocar nuevos contenedores en un cgroup diferente:

    docker run -it --rm --cgroup-parent=/my-cgroup/ ubuntu bash

Para obtener más información, consulte https://sthbrx.github.io/blog/2016/07/27/get-off-my-lawn-separating-docker-workloads-using-cgroups/ .

over 4 years ago · Santiago Trujillo Denunciar

0

Tuve el mismo problema que se resolvió al crear un contenedor usando el modo " -privilegiado ".

Con este modo, podemos vincular los nodos de memoria y CPU dentro del contenedor y usar numa de manera efectiva.

Utilice el siguiente comando:

 #docker run --privileged --name=test_numa --net=host -itd <image_id>
over 4 years ago · Santiago Trujillo Denunciar

0

Intente otorgar la capacidad CAP_SYS_NICE con nombre engañoso al contenedor, lo que permite que el proceso "establezca la afinidad de la CPU para procesos arbitrarios" [ ref ]:

 docker run --cap-add SYS_NICE <other arguments>

Este es un enfoque más seguro que --privileged pero aún debería habilitar lo que necesita.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda