GNU/Linux >> Tutoriels Linux >  >> Linux

Comment limiter un processus à un cœur de processeur sous Linux ?

Sous Linux, exécutez le sched_setaffinity appel système. L'affinité d'un processus est l'ensemble des processeurs sur lesquels il peut s'exécuter. Il existe un wrapper shell standard :taskset . Par exemple, pour épingler un processus au CPU #0 (vous devez choisir un CPU spécifique) :

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

Il existe des modules tiers pour Perl (Sys::CpuAffinity ) et Python (affinity ) pour définir l'affinité d'un processus. Les deux fonctionnent à la fois sur Linux et Windows (Windows peut nécessiter d'autres modules tiers avec Sys::CpuAffinity ); Sys::CpuAffinity fonctionne également sur plusieurs autres variantes d'Unix.

Si vous souhaitez définir l'affinité d'un processus à partir de sa naissance, définissez l'affinité du processus en cours juste avant d'appeler execve . Voici un wrapper trivial qui force un processus à s'exécuter sur le CPU 0.

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

Vous pouvez également créer des ensembles de processeurs sur la ligne de commande. man cpuset Plus tard, vous pourrez leur attribuer des processus (en cours d'exécution).


Linux
  1. Comment tuer un processus zombie sous Linux

  2. Comment limiter l'utilisation du processeur d'un processus sous Linux

  3. Linux - Comment limiter un processus à un seul cœur de processeur sous Linux ??

  4. Comment définir la variable $Path sous Linux

  5. Comment définir l'affinité processeur d'un processus sous Linux ?

Comment surveiller la température d'un processeur sur un système Redhat 7 Linux

Comment définir ulimit et la limite des descripteurs de fichiers sur les serveurs Linux

Comment tuer un processus sous Linux

Comment définir ou modifier le nom d'hôte sous Linux

Comment obtenir l'utilisation du processeur d'un seul processus sous Linux

Comment tuer un processus sous Linux