'\" t .\" Title: taskset .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.20 .\" Date: 2024-03-27 .\" Manual: Dienstprogramme für Benutzer .\" Source: util-linux 2.39.3 .\" Language: English .\" .TH "TASKSET" "1" "2024-03-27" "util\-linux 2.39.3" "Dienstprogramme für Benutzer" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "BEZEICHNUNG" taskset \- die CPU\-Affinität eines Prozesses festlegen oder ermitteln .SH "ÜBERSICHT" .sp \fBtaskset\fP [Optionen] \fIMaske Befehl\fP [\fIArgument\fP...] .sp \fBtaskset\fP [Optionen] \fB\-p\fP [\fIMaske\fP] \fIPID\fP .SH "BESCHREIBUNG" .sp Der Befehl \fBtaskset\fP wird zum Ermitteln oder Festlegen der CPU\-Affinität eines laufenden Prozesses verwendet, entweder durch Angabe der Prozesskennung (\fIPID\fP) 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. .sp 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 \fB\-\-cpu\-list\fP angegeben wird. Zum Beispiel .sp \fB0x00000001\fP .RS 4 ist Prozessor #0, .RE .sp \fB0x00000003\fP .RS 4 sind die Prozessoren #0 und #1, .RE .sp \fBFFFFFFFF\fP .RS 4 sind die Prozessoren #0 bis #31, .RE .sp \fB0x32\fP .RS 4 sind die Prozessoren #1, #4 und #5, .RE .sp \fB\-\-cpu\-list 0\-2,6\fP .RS 4 sind die Prozessoren #0, #1, #2 und #6. .RE .sp \fB\-\-cpu\-list 0\-10:2\fP .RS 4 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. .RE .sp Wenn \fBtaskset\fP etwas zurückgibt, dann ist garantiert, dass das gegebene Programm einer gültigen CPU zugeordnet wurde. .SH "OPTIONEN" .sp \fB\-a\fP, \fB\-\-all\-tasks\fP .RS 4 setzt oder ermittelt die CPU\-Affinität aller Prozesse (Threads) für eine gegebene Prozesskennung (PID). .RE .sp \fB\-c\fP, \fB\-\-cpu\-list\fP .RS 4 interpretiert \fIMaske\fP als numerische Liste von Prozessoren statt einer Bitmaske. Nummern werden durch Kommata getrennt und dürfen Bereichsangaben enthalten. Beispiel: \fB0,5,8\-11\fP. .RE .sp \fB\-p\fP, \fB\-\-pid\fP .RS 4 verwendet eine vorhandene Prozesskennung (PID), anstatt einen neuen Prozess zu starten. .RE .sp \fB\-h\fP, \fB\-\-help\fP .RS 4 zeigt einen Hilfetext an und beendet das Programm. .RE .sp \fB\-V\fP, \fB\-\-version\fP .RS 4 zeigt Versionsinformationen an und beendet das Programm. .RE .SH "VERWENDUNG" .sp Per Vorgabe wird ein neuer Befehl mit der gegebenen Affinitätsmaske ausgeführt: .RS 4 \fBtaskset\fP \fIMaske\fP \fIBefehl\fP [\fIArgumente\fP] .RE .sp Sie können auch die CPU\-Affinität eines existierenden Prozesses ermitteln: .RS 4 \fBtaskset \-p\fP \fIPID\fP .RE .sp oder sie festlegen: .RS 4 \fBtaskset \-p\fP \fIMaske PID\fP .RE .sp Wenn eine CPU\-Liste für einen existierenden Prozess angegeben wird, müssen die Optionen \fB\-p\fP und \fB\-c\fP verkettet werden: .RS 4 \fBtaskset \-pc\fP \fICPU\-Liste PID\fP .RE .sp Die Form \fB\-\-cpu\-list\fP ist nur für die Ausführung neuer Befehle anwendbar: .RS 4 \fBtaskset \-\-cpu\-list\fP \fICPU\-Liste Befehl\fP .RE .SH "ZUGRIFFSRECHTE" .sp Ein Benutzer muss über \fBCAP_SYS_NICE\fP verfügen, um die CPU\-Affinität eines Prozesses zu ändern. Die Ermittlung der Affinitätsmaske ist allen Benutzern erlaubt. .SH "RÜCKGABEWERT" .sp \fBtaskset\fP gibt in seinem Bezugsmasken\-Ermittlungsmodus 0 zurück, sofern die übergebene PID existiert. .sp \fBtaskset\fP returns 0 in its affinity\-setting mode as long as the underlying \fBsched_setaffinity\fP(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: .sp $ ps ax \-o comm,psr,pid | grep kswapd .br kswapd0 4 82 .br $ sudo taskset \-p 1 82 .br pid 82\(cqs current affinity mask: 1 .br pid 82\(cqs new affinity mask: 1 .br $ echo $? .br 0 .br $ ps ax \-o comm,psr,pid | grep kswapd .br kswapd0 4 82 .br $ taskset \-p 82 .br pid 82\(cqs current affinity mask: 1 .br .sp Im Gegensatz dazu gibt \fBtaskset\fP einen Fehler mit dem Code 1 zurück, wenn der Benutzer eine ungültige Bezugsmaske übergibt: .sp $ ps ax \-o comm,psr,pid | grep ksoftirqd/0 .br ksoftirqd/0 0 14 .br $ sudo taskset \-p 1 14 .br pid 14\(cqs current affinity mask: 1 .br taskset: failed to set pid 14\(cqs affinity: Invalid argument .br $ echo $? .br 1 .br .SH "AUTOREN" .sp Geschrieben von Robert M. Love. .SH "COPYRIGHT" .sp 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. .SH "SIEHE AUCH" .sp \fBchrt\fP(1), \fBnice\fP(1), \fBrenice\fP(1), \fBsched_getaffinity\fP(2), \fBsched_setaffinity\fP(2) .sp In \fBsched\fP(7) finden Sie eine Beschreibung des Scheduling\-Schemas in Linux. .SH "FEHLER MELDEN" .sp Nutzen Sie zum Melden von Fehlern das Fehlererfassungssystem auf \c .URL "https://github.com/util\-linux/util\-linux/issues" "" "." .SH "VERFÜGBARKEIT" .sp Der Befehl \fBtaskset\fP ist Teil des Pakets util\-linux, welches aus dem \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "Linux\-Kernel\-Archiv" "" heruntergeladen werden kann.