GNU/Linux >> Tutoriels Linux >  >> Linux

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

Cette question a déjà des réponses ici :Comment paramétrer l'affinité processeur d'un processus sous Linux ?

(4 réponses)
Fermé il y a 3 ans.

Comment limiter le processus à un cœur de processeur ?

Quelque chose de similaire à ulimit ou cpulimit serait bien. (Juste pour s'assurer:je ne veux PAS limiter l'utilisation en pourcentage ou le temps d'exécution. Je veux forcer l'application (avec tous ses enfants, processus (threads)) à utiliser un cœur de processeur (ou 'n' cœurs de processeur)).

Réponse acceptée :

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

Linux
  1. Comment tuer un processus zombie sous Linux

  2. Linux - Comment définir l'affinité du processeur d'un processus sous Linux ?

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

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

  5. Comment renicer tous les threads (et enfants) d'un processus sous Linux ?

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

Comment tuer un processus sous Linux

Comment limiter l'utilisation du processeur avec CPULimit sur Ubuntu Linux

Comment tuer les processus Zombie sous Linux

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

Comment tuer un processus sous Linux