GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie stellt man die CPU-Affinität für einen Prozess von C oder C++ in Linux ein?

Verwenden Sie sched_setaffinity auf Prozessebene oder pthread_attr_setaffinity_np für einzelne Threads.


Sie müssen sched_setaffinity(2) verwenden .

Zum Beispiel, um nur auf den CPUs 0 und 2 zu laufen:

#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 denn der erste Parameter bedeutet den aktuellen Prozess, geben Sie eine PID an, wenn Sie einen anderen Prozess steuern möchten).

Siehe auch sched_getcpu(3) .


Linux
  1. So begrenzen Sie die CPU-Auslastung eines Prozesses in Linux

  2. Linux – Wie kann ich die Netzwerkfreigabe für den aktuellen Prozess aufheben?

  3. Linux – Wie stellt man die Standard-CPU-Affinität für alle Daemons in Systemd ein?

  4. Wie berechnet man die CPU-Auslastung eines Prozesses durch PID in Linux von C?

  5. So erhalten Sie die gesamte CPU-Auslastung in Linux mit C++

Tipps für oben:Überwachung der CPU-Last unter Linux

So beenden Sie einen Prozess in Linux

3 Tipps zur Verbesserung der Linux-Prozessleistung mit Priorität und Affinität

So erhalten Sie die CPU-Auslastung eines einzelnen Prozesses in Linux

So richten Sie einen Linux-Killswitch für VPNs ein

So legen Sie die CPU-Affinität für den SYSTEMD-Prozess in CentOS/RHEL 7 fest