Provided by: util-linux-locales_2.39.3-9ubuntu6_all bug

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
           zeigt Versionsinformationen an und beendet das Programm.

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

       Nutzen Sie zum Melden von Fehlern das Fehlererfassungssystem auf
       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.