Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

744
Visualizações
¿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!

about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

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/ .

about 4 years ago · Santiago Trujillo Relatório

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>
about 4 years ago · Santiago Trujillo Relatório

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.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda