- experimental 2.41~rc2-1
TASKSET(1) | Comenzi utilizator | TASKSET(1) |
NUME¶
taskset - stabilește sau recuperează afinitatea CPU a unui proces
REZUMAT¶
taskset [opțiuni] masca comanda [argument...]
taskset [opțiuni] -p [masca] pid
DESCRIERE¶
Comanda taskset este utilizată pentru a stabili sau a prelua afinitatea CPU a unui proces în curs de execuție, având în vedere pid-ul acestuia, sau pentru a lansa o nouă comandă cu o anumită afinitate CPU. Afinitatea CPU este o proprietate a planificatorului care „leagă” un proces de un anumit set de CPU-uri din sistem. Planificatorul Linux va respecta afinitatea CPU dată, iar procesul nu va rula pe alte CPU-uri. Rețineți că planificatorul Linux acceptă și afinitatea naturală a CPU: planificatorul încearcă să mențină procesele pe același CPU cât mai mult timp posibil din motive de performanță. Prin urmare, forțarea unei afinități CPU specifice este utilă numai în anumite aplicații. Afinitatea unor procese, cum ar fi firele per-CPU ale nucleului, nu poate fi definită.
Afinitatea CPU este reprezentată ca o mască de biți, cu bitul de ordinul cel mai mic corespunzând primei CPU logice și bitul de ordinul cel mai mare corespunzând ultimei CPU logice. Este posibil să nu existe toate CPU-urile pe un anumit sistem, dar o mască poate specifica mai multe CPU-uri decât cele prezente. O mască recuperată va reflecta numai biții care corespund CPU-urilor aflate fizic în sistem. În cazul în care se indică o mască nevalidă (adică una care nu corespunde niciunui CPU valid de pe sistemul curent), se returnează o eroare. Măștile pot fi specificate în hexazecimal (cu sau fără un "0x" de început) sau sub forma unei liste de CPU-uri cu ajutorul opțiunii --cpu-list. De exemplu,
0x00000001
0x00000003
FFFFFFFF
0x32
--cpu-list 0-2,6
--cpu-list 0-10:2
Când taskset returnează, se garantează că programul dat a fost planificat pentru un procesor (CPU) legal.
OPȚIUNI¶
-a, --all-tasks
-c, --cpu-list
-p, --pid
-h, --help
-V, --version
UTILIZARE¶
Comportamentul implicit este de a rula o nouă comandă cu o mască de afinitate dată:
De asemenea, puteți prelua afinitatea CPU a unei sarcini existente:
Sau s-o stabiliți:
Când se specifică o listă de cpu-uri pentru un proces existent, opțiunile -p și -c trebuie să fie grupate împreună:
Forma --cpu-list se aplică numai pentru lansarea de noi comenzi:
PERMISIUNI¶
Un utilizator poate modifica afinitatea CPU a unui proces aparținând aceluiași utilizator. Un utilizator trebuie să posede CAP_SYS_NICE pentru a modifica afinitatea CPU a unui proces aparținând unui alt utilizator. Un utilizator poate prelua masca de afinitate a oricărui proces.
VALOAREA RETURNATö
taskset returnează 0 în acest mod de obținere a afinităților atât timp cât există PID-ul furnizat.
taskset returnează 0 în modul său de stabilire a afinității atât timp cât apelul de sistem sched_setaffinity(2) care stă la baza acestuia o face. Succesul comenzii nu garantează faptul că firul specificat a migrat efectiv către procesorul (procesoarele) indicat(e), ci doar că firul nu va migra către un procesor aflat în afara noii măști de afinitate. De exemplu, afinitatea firului nucleului kswapd poate fi definită, dar este posibil ca firul să nu migreze imediat și nu este garantat că o va face vreodată:
$ 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
În schimb, atunci când utilizatorul specifică o afinitate ilegală, taskset va afișa o eroare și va returna 1:
$ 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
AUTORI¶
Scris de Robert M. Love.
DREPTURI DE AUTOR¶
Drepturi de autor © 2004 Robert M. Love. Acesta este un software liber; consultați sursa pentru condițiile de copiere. Nu există nicio garanție; nici măcar pentru COMERCIALIZARE sau ADECVARE LA UN SCOP PARTICULAR.
CONSULTAȚI ȘI¶
chrt(1), nice(1), renice(1), sched_getaffinity(2), sched_setaffinity(2)
Consultați sched(7) pentru o descriere a schemei de planificare Linux.
RAPORTAREA ERORILOR¶
For bug reports, use the issue tracker <https://github.com/util-linux/util-linux/issues>.
DISPONIBILITATE¶
Comanda taskset face parte din pachetul util-linux care poate fi descărcat de la Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.
2025-03-06 | util-linux 2.41-rc2 |