TASKSET(1) Dienstprogramme fur Benutzer TASKSET(1) BEZEICHNUNG taskset - die CPU-Affinitat eines Prozesses festlegen oder ermitteln UBERSICHT taskset [Optionen] Maske Befehl [Argument...] taskset [Optionen] -p [Maske] PID BESCHREIBUNG Der Befehl taskset wird zum Ermitteln oder Festlegen der CPU-Affinitat eines laufenden Prozesses verwendet, entweder durch Angabe der Prozesskennung (PID) oder durch Ausfuhren 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-Affinitat, so dass der Prozess nicht auf irgend einer anderen CPU ausgefuhrt wird. Beachten Sie, dass der Scheduler auch die naturliche CPU-Affinitat unterstutzt: der Scheduler versucht, Prozesse auf der gleichen CPU zu halten, solange es aus Leistungsgrunden praktisch ist. Daher ist das Erzwingen einer spezifischen CPU-Affinitat nur in bestimmten Anwendungsfallen sinnvoll. Die Bezugsmaske einiger Prozesse wie Per-CPU-Prozesse des Kernels kann nicht gesetzt werden. Die CPU-Affinitat wird in Form einer Bitmaske dargestellt, mit dem niedrigstwertigen Bit fur die erste und dem hochstwertigen fur die letzte logische CPU. Es mussen nicht alle CPUs auf einem System vorhanden sein, aber eine Maske kann mehr CPUs enthalten, als verfugbar sind. Eine ermittelte Bitmaske bildet nur jene CPUs ab, die tatsachlich physisch auf dem System vorhanden sind. Falls eine ungultige Maske angegeben wird (fur die keine passenden CPUs auf dem System gefunden wurden), wird ein Fehler zuruckgegeben. Die Masken konnen hexadezimal angegeben werden (mit oder ohne fuhrendem >>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 zuruckgibt, dann ist garantiert, dass das gegebene Programm einer gultigen CPU zugeordnet wurde. OPTIONEN -a, --all-tasks setzt oder ermittelt die CPU-Affinitat aller Prozesse (Threads) fur eine gegebene Prozesskennung (PID). -c, --cpu-list interpretiert Maske als numerische Liste von Prozessoren statt einer Bitmaske. Nummern werden durch Kommata getrennt und durfen 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 Affinitatsmaske ausgefuhrt: taskset Maske Befehl [Argumente] Sie konnen auch die CPU-Affinitat eines existierenden Prozesses ermitteln: taskset -p pid oder sie festlegen: taskset -p Maske PID Wenn eine CPU-Liste fur einen existierenden Prozess angegeben wird, mussen die Optionen -p und -c verkettet werden: taskset -pc CPU-Liste PID Die Form --cpu-list ist nur fur die Ausfuhrung neuer Befehle anwendbar: taskset --cpu-list CPU-Liste Befehl ZUGRIFFSRECHTE Ein Benutzer muss uber CAP_SYS_NICE verfugen, um die CPU-Affinitat eines Prozesses zu andern. Die Ermittlung der Affinitatsmaske ist allen Benutzern erlaubt. RUCKGABEWERT taskset gibt in seinem Bezugsmasken-Ermittlungsmodus 0 zuruck, sofern die ubergebene 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 zuruck, wenn der Benutzer eine ungultige Bezugsmaske ubergibt: $ 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 (C) 2004 Robert M. Love. Dies ist freie Software, in den Quellen finden Sie die Bedingungen zur Vervielfaltigung und Weitergabe. Es gibt KEINE Garantie, auch nicht fur die MARKTREIFE oder die TAUGLICHKEIT FUR 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 . VERFUGBARKEIT Der Befehl taskset ist Teil des Pakets util-linux, welches aus dem Linux-Kernel-Archiv heruntergeladen werden kann. util-linux 2.41 2025-03-29 TASKSET(1)