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

Wie kann ich die Prozessoraffinität eines Prozesses unter Linux einstellen?

Ich habe Taskset dafür verwendet. Wenn Sie Taskset installiert haben, so etwas wie:

taskset -cp 0,2 45678

würde den Prozess mit der ID 45678 so einstellen, dass er eine Affinität zu den CPUs 1 und 3 hat.


Innerhalb des Prozesses wäre der Aufruf sched_setaffinity() , oder für pthreads Sachen, pthread_setaffinity_np()

Wenn Sie sich Sorgen über die CPU-Affinität Ihres Programms machen, kann es sich in diesem Zusammenhang lohnen, auch darauf zu achten, wie es die Speicherzuweisung durchführt. Größere Systeme mit Speicher, der an mehr als einen Controller angeschlossen ist (d. h. mehrere CPU-Sockel, jeder mit seinem eigenen), haben eine variable Latenz und Bandbreite zwischen verschiedenen CPU-Speicher-Paaren. Sie sollten sich auch die NUMA-Affinität ansehen, indem Sie numactl verwenden Befehl oder die Systemaufrufe, mit denen es arbeitet. Ein Programm, an dem ich gearbeitet habe, erzielte dadurch eine Leistungssteigerung von 10 %.


Sie müssen schedutils installieren (Linux Scheduler Utilities). Ich verwende es auf meinem Ubuntu Desktop.

SF-Link


Linux
  1. UNIX / Linux :Wie man die Nettigkeit (Priorität) eines Prozesses ändert

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

  3. Wie kann ich in Vim oder Linux Leerzeichen in Tabulatoren umwandeln?

  4. Wie beschränke ich einen Prozess auf einen CPU-Kern in Linux?

  5. So stellen Sie die bevorzugte Netzwerkschnittstelle unter Linux ein

So ändern Sie die Priorität eines Prozesses in Linux

So beenden oder beenden Sie einen Linux-Prozess:Der ultimative Leitfaden

So finden Sie die PID und PPID eines Prozesses in Linux

So richten Sie den RabbitMQ-Cluster unter Ubuntu/Debian Linux ein

So richten Sie die UFW-Firewall unter Linux ein

So senden Sie Prozesse unter Linux an den Hintergrund