Provided by: util-linux-locales_2.41-4ubuntu4.2_all 

BEZEICHNUNG
taskset - die CPU-Affinität eines Prozesses festlegen oder ermitteln
ÜBERSICHT
taskset [Optionen] Maske Befehl [Argument...]
taskset [Optionen] -p [Maske] PID
BESCHREIBUNG
Der Befehl taskset wird zum Ermitteln oder Festlegen der CPU-Affinität eines laufenden Prozesses
verwendet, entweder durch Angabe der Prozesskennung (PID) oder durch Ausführen eines neuen _Befehl_s mit
dem angegebenen CPU-Bezug. Der CPU-Bezug ist eine Scheduler-Eigenschaft, die einen Prozess an eine
gegebene CPU-Gruppe des Systems »bindet«. Der Linux-Scheduler respektiert die angegebene CPU-Affinität,
so dass der Prozess nicht auf irgend einer anderen CPU ausgeführt wird. Beachten Sie, dass der Scheduler
auch die natürliche CPU-Affinität unterstützt: der Scheduler versucht, Prozesse auf der gleichen CPU zu
halten, solange es aus Leistungsgründen praktisch ist. Daher ist das Erzwingen einer spezifischen
CPU-Affinität nur in bestimmten Anwendungsfällen sinnvoll. Die Bezugsmaske einiger Prozesse wie
Per-CPU-Prozesse des Kernels kann nicht gesetzt werden.
Die CPU-Affinität wird in Form einer Bitmaske dargestellt, mit dem niedrigstwertigen Bit für die erste
und dem höchstwertigen für die letzte logische CPU. Es müssen nicht alle CPUs auf einem System vorhanden
sein, aber eine Maske kann mehr CPUs enthalten, als verfügbar sind. Eine ermittelte Bitmaske bildet nur
jene CPUs ab, die tatsächlich physisch auf dem System vorhanden sind. Falls eine ungültige Maske
angegeben wird (für die keine passenden CPUs auf dem System gefunden wurden), wird ein Fehler
zurückgegeben. Die Masken können hexadezimal angegeben werden (mit oder ohne führendem »0x«) oder als
CPU-Liste, die mit der Option --cpu-list angegeben wird. Zum Beispiel
0x00000001
ist Prozessor #0,
0x00000003
sind die Prozessoren #0 und #1,
FFFFFFFF
sind die Prozessoren #0 bis #31,
0x32
sind die Prozessoren #1, #4 und #5,
--cpu-list 0-2,6
sind die Prozessoren #0, #1, #2 und #6.
--cpu-list 0-10:2
sind die Prozessoren #0, #2, #4, #6, #8 und #10. Das Suffix »:N« gibt die Schrittweite in dem Bereich
an, zum Beispiel wird 0-10:3 als Liste von 0,3,6,9 interpretiert.
Wenn taskset etwas zurückgibt, dann ist garantiert, dass das gegebene Programm einer gültigen CPU
zugeordnet wurde.
OPTIONEN
-a, --all-tasks
setzt oder ermittelt die CPU-Affinität aller Prozesse (Threads) für eine gegebene Prozesskennung
(PID).
-c, --cpu-list
interpretiert Maske als numerische Liste von Prozessoren statt einer Bitmaske. Nummern werden durch
Kommata getrennt und dürfen Bereichsangaben enthalten. Beispiel: 0,5,8-11.
-p, --pid
verwendet eine vorhandene Prozesskennung (PID), anstatt einen neuen Prozess zu starten.
-h, --help
zeigt einen Hilfetext an und beendet das Programm.
-V, --version
Display version and exit.
VERWENDUNG
Per Vorgabe wird ein neuer Befehl mit der gegebenen Affinitätsmaske ausgeführt:
taskset Maske Befehl [Argumente]
Sie können auch die CPU-Affinität eines existierenden Prozesses ermitteln:
taskset -p pid
oder sie festlegen:
taskset -p Maske PID
Wenn eine CPU-Liste für einen existierenden Prozess angegeben wird, müssen die Optionen -p und -c
verkettet werden:
taskset -pc CPU-Liste PID
Die Form --cpu-list ist nur für die Ausführung neuer Befehle anwendbar:
taskset --cpu-list CPU-Liste Befehl
ZUGRIFFSRECHTE
Ein Benutzer muss über CAP_SYS_NICE verfügen, um die CPU-Affinität eines Prozesses zu ändern. Die
Ermittlung der Affinitätsmaske ist allen Benutzern erlaubt.
RÜCKGABEWERT
taskset gibt in seinem Bezugsmasken-Ermittlungsmodus 0 zurück, sofern die übergebene PID existiert.
taskset returns 0 in its affinity-setting mode as long as the underlying sched_setaffinity(2) system call
does. The success of the command does not guarantee that the specified thread has actually migrated to
the indicated CPU(s), but only that the thread will not migrate to a CPU outside the new affinity mask.
For example, the affinity of the kernel thread kswapd can be set, but the thread may not immediately
migrate and is not guaranteed to ever do so:
$ ps ax -o comm,psr,pid | grep kswapd
kswapd0 4 82
$ sudo taskset -p 1 82
pid 82’s current affinity mask: 1
pid 82’s new affinity mask: 1
$ echo $?
0
$ ps ax -o comm,psr,pid | grep kswapd
kswapd0 4 82
$ taskset -p 82
pid 82’s current affinity mask: 1
Im Gegensatz dazu gibt taskset einen Fehler mit dem Code 1 zurück, wenn der Benutzer eine ungültige
Bezugsmaske übergibt:
$ ps ax -o comm,psr,pid | grep ksoftirqd/0
ksoftirqd/0 0 14
$ sudo taskset -p 1 14
pid 14’s current affinity mask: 1
taskset: failed to set pid 14’s affinity: Invalid argument
$ echo $?
1
AUTOREN
Geschrieben von Robert M. Love.
COPYRIGHT
Copyright © 2004 Robert M. Love. Dies ist freie Software, in den Quellen finden Sie die Bedingungen zur
Vervielfältigung und Weitergabe. Es gibt KEINE Garantie, auch nicht für die MARKTREIFE oder die
TAUGLICHKEIT FÜR EINEN BESTIMMTEN ZWECK.
SIEHE AUCH
chrt(1), nice(1), renice(1), sched_getaffinity(2), sched_setaffinity(2)
In sched(7) finden Sie eine Beschreibung des Scheduling-Schemas in Linux.
FEHLER MELDEN
For bug reports, use the issue tracker <https://github.com/util-linux/util-linux/issues>.
VERFÜGBARKEIT
Der Befehl taskset ist Teil des Pakets util-linux, welches aus dem Linux-Kernel-Archiv
<https://www.kernel.org/pub/linux/utils/util-linux/> heruntergeladen werden kann.
util-linux 2.41 2026-03-06 TASKSET(1)