Scroll to navigation

TASKSET(1) Корисничке наредбе 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

Ради на постојећем ПИД-у и не покреће нови задатак.

-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 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-03-27 util-linux 2.39.3