GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo limitar un proceso a un núcleo de CPU en Linux?

En Linux, ejecute sched_setaffinity llamada del sistema. La afinidad de un proceso es el conjunto de procesadores en los que puede ejecutarse. Hay un contenedor de shell estándar:taskset . Por ejemplo, para anclar un proceso a la CPU #0 (debe elegir una CPU específica):

taskset -c 0 mycommand --option  # start a command with the given affinity
taskset -c -pa 0 1234            # set the affinity of a running process

Hay módulos de terceros para Perl (Sys::CpuAffinity ) y Python (affinity ) para establecer la afinidad de un proceso. Ambos funcionan tanto en Linux como en Windows (Windows puede requerir otros módulos de terceros con Sys::CpuAffinity ); Sys::CpuAffinity también funciona en varias otras variantes de Unix.

Si desea establecer la afinidad de un proceso desde el momento de su nacimiento, establezca la afinidad del proceso actual inmediatamente antes de llamar a execve . Aquí hay un contenedor trivial que obliga a un proceso a ejecutarse en la CPU 0.

#!/usr/bin/env perl
use POSIX;
use Sys::CPUAffinity;
Sys::CpuAffinity::setAffinity(getpid(), [0]);
exec $ARGV[0] @ARGV

También puede crear conjuntos de CPU en la línea de comandos. man cpuset Más adelante puede asignarles procesos (en ejecución).


Linux
  1. Cómo matar un proceso zombie en Linux

  2. Cómo limitar el uso de la CPU de un proceso en Linux

  3. ¿Cómo configurar la afinidad de la CPU para un proceso de C o C++ en Linux?

  4. Cómo configurar la ID del proceso en Linux para un programa específico

  5. ¿Cómo puedo configurar la afinidad del procesador de un proceso en Linux?

Cómo monitorear la temperatura de una CPU en el sistema Redhat 7 Linux

Cómo configurar ulimit y límite de descriptores de archivos en servidores Linux

Cómo matar un proceso en Linux

Cómo configurar o cambiar el nombre de host en Linux

Cómo obtener el uso de la CPU de un solo proceso en Linux

Cómo MATAR un proceso en Linux