TASKSET(1) | Корисничке наредбе | TASKSET(1) |
НАЗИВ¶
taskset - поставља или довлачи склоност процесора процеса
УВОД¶
taskset [опције] маска наредба [argument...]
taskset [опције] -p [маска] пид
ОПИС¶
Наредба taskset се користи за постављање или довлачење склоности процесора покренутог процеса с обзиром на његов пид, или за покретање нове наредбе са датом склоношћу процесора. Склоност процесора је својство заказивача које „везује“ процес за дати скуп процесора на систему. Линукс заказивач ће поштовати дату склоност процесора и процес се неће покренути ни на једном другом процесору. Знајте да Линукс заказивач такође подржава природну склоност процесора: заказивач покушава да задржи процесе на истом процесору колико год је то практично из разлога учинковитости. Стога је присиљавање специфичне склоности процесора корисно само у одређеним програмима. Склоност неких процеса као што су нити по процесору кернела се не може поставити.
Склоност процесора је представљена као битмаска, са битом најнижег реда који одговара првом логичком процесору и са битом највишег реда који одговара последњем логичком процесору. Не могу сви процесори постојати на датом систему, али маска може навести више процесора него што их је присутно. Преузета маска ће одражавати само битове који одговарају процесорима физички на систему. Ако је дата неисправна маска (тј. она која не одговара ниједном исправном процесору на тренутном систему), враћа се грешка. Маске могу бити наведене у хексадецималу (са или без водећих „0х“), или као списак процесора са опцијом --cpu-list. На пример,
0x00000001
0x00000003
FFFFFFFF
0x32
--cpu-list 0-2,6
--cpu-list 0-10:2
Када taskset резултира, загарантовано је да је дати програм заказан на легалном процесору.
ОПЦИЈЕ¶
-a, --all-tasks
-c, --cpu-list
-p, --pid
-h, --help
-V, --version
КОРИШЋЕЊЕ¶
Основно понашање је покретање нове наредбе са датом маском: склоности
Можете такође да довучете склоност процесора постојећег задатка:
Или је поставља:
Када је списак процесора одређен за постојећи процес, опције -p и -c морају бити груписане заједно:
--cpu-list образац је примењив само за покретање нових наредби:
ОВЛАШЋЕЊА¶
Корисник може да измени процесорску склоност процеса који припада истом кориснику. Корисник мора да поседује CAP_SYS_NICE да би изменио процесорску склоност процеса који припада другом кориснику. Корисник може да довуче маску склоности било ког процеса.
РЕЗУЛТНА ВРЕДНОСТ¶
taskset враћа 0 у свом режиму добијања афинитета све док постоји обезбеђени ПИД.
taskset даје 0 у свом режиму подешавања афинитета све док то чини основни системски позив sched_setaffinity(2). Успех наредбе не гарантује да се наведена нит заправо преселила на назначене процесоре, већ само да се нит неће преселити на процесор ван нове маске афинитета. На пример, афинитет нити кернела „kswapd“ се може поставити, али нит се можда неће одмах преселити и није загарантовано да ће то икада учинити:
$ ps ax -o comm,psr,pid | grep kswapd
kswapd0 4 82
$ sudo taskset -p 1 82
текућа
маска
афинитета
пид-а 82: 1
нова маска
афинитета
пид-а 82: 1
$ echo $?
0
$ ps ax -o comm,psr,pid | grep kswapd
kswapd0 4 82
$ taskset -p 82
текућа
маска
афинитета
пид-а 82: 1
Насупрот томе, када корисник наведе недозвољени афинитет, „taskset“ ће исписати грешку и дати 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: нисам
успео да
поставим
афинитет
пид-а 14:
Неисправан
аргумент
$ echo $?
1
АУТОРИ¶
Написао је Robert M. Love.
АУТОРСКА ПРАВА¶
Ауторска права © 2004 Robert M. Love. Ово је слободан софтвер; погледајте извор за услове умножавања. Нема НИКАКВЕ гаранције; чак ни о ТРЖИШНОЈ ВРЕДНОСТИ или ПРИЛАГОЂЕНОСТИ ПОСЕБНОЈ НАМЕНИ.
ПОГЛЕДАЈТЕ ТАКОЂЕ¶
chrt(1), nice(1), renice(1), sched_getaffinity(2), sched_setaffinity(2)
Видите sched(7) за описивање шеме заказивања Линукса.
ПРИЈАВЉИВАЊЕ ГРЕШАКА¶
За пријављивање грешака, користите пратиоца грешака на <https://github.com/util-linux/util-linux/issues>.
ДОСТУПНОСТ¶
Наредба taskset је део пакета „util-linux“ који се може преузети са Архиве Линукс кернела <https://www.kernel.org/pub/linux/utils/util-linux/>.
2024-01-05 | util-linux 2.39.3 |