GNU/Linux >> Tutoriels Linux >  >> Linux

Comment définir l'affinité CPU pour un processus à partir de C ou C++ sous Linux ?

Utilisez sched_setaffinity au niveau du processus ou pthread_attr_setaffinity_np pour les threads individuels.


Vous devez utiliser sched_setaffinity(2) .

Par exemple, pour s'exécuter uniquement sur les CPU 0 et 2 :

#define _GNU_SOURCE
#include <sched.h>

cpu_set_t  mask;
CPU_ZERO(&mask);
CPU_SET(0, &mask);
CPU_SET(2, &mask);
int result = sched_setaffinity(0, sizeof(mask), &mask);

(0 pour le premier paramètre signifie le processus en cours, fournissez un PID s'il s'agit d'un autre processus que vous souhaitez contrôler).

Voir aussi sched_getcpu(3) .


Linux
  1. Linux - Comment annuler le partage du réseau pour le processus actuel ?

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

  3. Linux - Comment définir l'affinité CPU par défaut pour tous les démons dans Systemd ?

  4. Comment définir l'affinité CPU pour le processus SYSTEMD dans CentOS/RHEL 7

  5. Comment calculer l'utilisation CPU d'un processus par PID sous Linux à partir de C ?

Conseils pour le haut :surveiller la charge du processeur sous Linux

Comment tuer un processus sous Linux

3 astuces pour améliorer les performances des processus Linux avec priorité et affinité

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

Comment configurer un killswitch Linux pour les VPN

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