TASKSET(1)

НАЗИВ
taskset - поставља или довлачи склоност процесора процеса

УВОД

taskset [опције] маска наредба [argument...]

taskset [опције] -p [маска] пид

ОПИС

Наредба taskset се користи за постављање или довлачење склоности процесора покренутог процеса с обзиром на његов пид, или за покретање нове наредбе са датом склоношћу процесора. Склоност процесора је својство заказивача које „везује“ процес за дати скуп процесора на систему. Линукс заказивач ће поштовати дату склоност процесора и процес се неће покренути ни на једном другом процесору. Знајте да Линукс заказивач такође подржава природну склоност процесора: заказивач покушава да задржи процесе на истом процесору колико год је то практично из разлога учинковитости. Стога је присиљавање специфичне склоности процесора корисно само у одређеним програмима. Склоност неких процеса као што су нити по процесору кернела се не може поставити.

Склоност процесора је представљена као битмаска, са битом најнижег реда који одговара првом логичком процесору и са битом највишег реда који одговара последњем логичком процесору. Не могу сви процесори постојати на датом систему, али маска може навести више процесора него што их је присутно. Преузета маска ће одражавати само битове који одговарају процесорима физички на систему. Ако је дата неисправна маска (тј. она која не одговара ниједном исправном процесору на тренутном систему), враћа се грешка. Маске могу бити наведене у хексадецималу (са или без водећих „0х“), или као списак процесора са опцијом --cpu-list. На пример,

0x00000001
    је процесор #0,

0x00000003
    је процесор #0 и #1,

FFFFFFFF
    је процесор од #0 до #31,

0x32
    је процесор #1, #4, и #5,

--cpu-list 0-2,6
    је процесор #0, #1, #2, и #6.

--cpu-list 0-10:2
    јесу процесори #0, #2, #4, #6, #8 и #10. Суфикс „:N“ наводи корачај у опсегу, на пример 0-10:3 се тумачи као списак 0,3,6,9.

Када taskset резултира, загарантовано је да је дати програм заказан на легалном процесору.

ОПЦИЈЕ

-a, --all-tasks
    Поставља или довлачи склоност процесора свих задатака (нити) за дати ПИД.

-c, --cpu-list
    Тумачи маску као бројевни списак процесора уместо битмаске. Бројеви су одвојени зарезима и могу садржати опсеге. На пример: 0,5,8-11.

-p, --pid
    Operate on an existing PID and do not launch a new task. If PID is zero, then operate on the taskset process.

-h, --help
    Приказује текст помоћи и излази.

-V, --version
    Исписује издање и излази.

КОРИШЋЕЊЕ

Основно понашање је покретање нове наредбе са датом маском: склоности
    taskset маска наредба [аргументи]

Можете такође да довучете склоност процесора постојећег задатка:
    taskset -p пид

Или је поставља:
    taskset -p маска пид

Када је списак процесора одређен за постојећи процес, опције -p и -c морају бити груписане заједно:
    taskset -pc пид списка процесора

--cpu-list образац је примењив само за покретање нових наредби:
    taskset --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 маска тренутног афинитета: 1 +
taskset: нисам успео да поставим афинитет пид-а 14: Неисправан аргумент +
$ echo $? +
1

ПРИМЕРИ

Print the current CPU affinity as a list.

$ taskset -pc 0
pid 1355988’s current affinity list: 0-47

АУТОРИ

Написао је 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[issue tracker]“.

ДОСТУПНОСТ

Наредба taskset је део „util-linux“ пакета који се може преузети са