Prozessaffinität (auch bekannt als CPU-Pinning) ist der Prozess, bei dem laufende Programme einem einzelnen Thread (virtuellen Kern) zugewiesen werden, anstatt ihn mit allen CPU-Threads laufen zu lassen. Das Festlegen der Prozessaffinität ist von Vorteil, da es Benutzern ermöglicht, genau zu entscheiden, wie viel Ressourcen ein Programm verwendet.

In diesem Handbuch erfahren Sie, wie Sie die Affinität zum Ausführen von Programmen auf Ihrem Linux-PC festlegen. Wir werden auch andere Möglichkeiten besprechen, wie Sie Systemressourcen auf Programme auf Ihrem Linux-Betriebssystem beschränken können.

Finden Sie Ihre CPU-Informationen

Bevor wir uns mit dem Anheften einzelner Programme an bestimmte Threads befassen können, müssen wir herausfinden, wie viele Threads auf Ihrem Linux-System verfügbar sind. Es gibt mehrere Möglichkeiten, diese Informationen herauszufinden. Wir werden zwei Möglichkeiten behandeln.

Die erste Möglichkeit, die Anzahl Ihrer CPU-Threads herauszufinden, ist mit dem nproc Befehl. Dieser Befehl gibt eine grobe Anzahl von Prozessoren aus, die für Ihr Linux-System verfügbar sind.

Um die auszuführen nproc Um festzustellen, wie viele Threads Ihnen zur Verfügung stehen, müssen Sie ein Terminalfenster öffnen. Um ein Terminalfenster zu öffnen, drücken Sie Strg + Alt + T oder Strg + Umschalt + T auf der Tastatur.

Führen Sie bei geöffnetem Terminalfenster aus nproc.

nproc

Sie werden es bemerken, nachdem Sie den Befehl ausgeführt haben; in der Eingabeaufforderung wird eine Zahl angezeigt. Die Zahl ist die Anzahl der Threads (virtuellen Kerne) Ihres Linux-Systems. Um diese Informationen für später zu speichern, gehen Sie wie folgt vor.

nproc >> ~/cpu-count.txt

Wenn die nproc Befehl einfach nicht genug Informationen für Sie, es gibt ein besseres Befehlszeilen-Tool, das viel mehr Informationen über Ihre CPU-Threads liefert. Es heißt CPU-Info. So installieren Sie es.

Stellen Sie zunächst sicher, dass ein Terminalfenster geöffnet ist. Geben Sie dann die folgenden Installationsbefehle ein, die dem von Ihnen verwendeten Linux-Betriebssystem entsprechen.

Ubuntu

Unter Ubuntu Linux können Sie CPU Info mit dem Geeignet Paketmanager-Befehl unten.

sudo apt install cpuinfo

Debian

Diejenigen, die Debian Linux verwenden, können CPU-Informationen mit den folgenden Schritten zum Laufen bringen Apt-get Befehl.

sudo apt-get install cpuinfo

Arch Linux

Arch Linux kann das CPU-Info-Tool unter Linux mit folgenden Schritten installieren: Pacman Befehl in einem Terminalfenster.

sudo pacman -S python-py-cpuinfo

Fedora

Verwenden Sie Fedora-Linux? Holen Sie sich CPU-Informationen, indem Sie Folgendes ausführen Dnf Befehl in einem Terminal.

sudo dnf install python3-cpuinfo

OpenSUSE

Ein OpenSUSE Linux-Benutzer? Holen Sie sich CPU Info mit dem Zypper Befehl unten.

sudo zypper install python3-py-cpuinfo

Sobald das CPU-Info-Programm auf Ihrem Linux-PC eingerichtet ist, ist es an der Zeit, es zu verwenden, um CPU-Informationen herauszufinden, damit wir genau bestimmen können, mit wie vielen Threads gearbeitet werden muss.

Verwendung der CPU-Info Befehl unten, erhalten Sie eine Auslesung Ihrer CPU.

Hinweis: Möglicherweise müssen Sie ausführen cpuinfo eher, als CPU-Info wenn unter Arch Linux, Fedora oder OpenSUSE Linux.

So legen Sie die Prozessaffinität unter Linux fest 2

cpu-info

Nachdem Sie den Befehl ausgeführt haben, sehen Sie sowohl eine Kernanzahl als auch eine logische Anzahl. Die logische Anzahl ist die Anzahl der Threads, mit denen Sie arbeiten müssen. Logische Informationen sind die wichtigsten, wenn es um diese Anleitung geht. Sie können die CPU-Informationen gerne in einer Textdatei speichern, indem Sie den folgenden Befehl ausführen.

cpu-info >> ~/cpu-count.txt

So legen Sie die Prozessaffinität unter Linux fest

Um die Prozessaffinität auf Ihrem Linux-PC einzustellen, müssen Sie das integrierte Programm Taskset verwenden. Öffnen Sie ein Terminalfenster, indem Sie drücken Strg + Alt + T oder Strg + Umschalt + T auf der Tastatur. Befolgen Sie dann von dort aus die folgenden Schritt-für-Schritt-Anleitungen, um zu erfahren, wie Sie einen laufenden Prozess affinieren.

Schritt 1: Finden Sie die Prozess-ID eines laufenden Programms, indem Sie pidof ausführen, gefolgt vom Namen der App. Um beispielsweise die Prozess-ID von Thunderbird zu finden, führen Sie den folgenden Beispielbefehl aus.

So legen Sie die Prozessaffinität unter Linux fest 3

pidof thunderbird

Schritt 2: Notieren Sie sich die Prozess-ID der App. Stecken Sie es dann in folgendes ein Aufgabengruppe Befehl Beispiel.

Hinweis: Sie müssen thread_number in den CPU-Thread ändern, auf dem Sie das Programm platzieren möchten. Sie müssen auch process_id in die Prozess-ID ändern, die mit gefunden wurde pidof mit dem du gerne affinieren würdest Aufgabengruppe.

sudo taskset -cp thread_number process_id &

Müssen Sie Ihr neu verbundenes Programm überprüfen? Lauf Aufgabengruppe -p mit der Prozess-ID des Programms, um zu bestätigen, dass es auf dem CPU-Thread ausgeführt wird, den Sie in Schritt 2 angegeben haben.

taskset -p process_id

Erfahre mehr über Taskset

Um mehr über Taskset zu erfahren, müssen Sie das Handbuch lesen. Führen Sie die Mann-Aufgabensatz Befehl.

So legen Sie die Prozessaffinität unter Linux fest 4

man taskset

Laufen Mann-Aufgabensatz command wird Ihnen ein ausführliches Handbuch rund um die Taskset-Anwendung präsentieren. Schauen Sie es sich an, da es Ihnen hilft zu verstehen, wie die App funktioniert. Wenn Sie fertig sind, drücken Sie Q beenden.