Pełne polecenie, które chcesz:
chrt -b 0 nice -n 19 ionice -c 2 -n 7 [command]
chrt
Polecenia na początku przełączy rzeczy do klasy szeregowania partii, co jest równoznaczne z dodaniem 0,5 do miłej wartości. Opcja -n dla ionice jest prostym priorytetem dla opcji czasu rzeczywistego ( -c 1
) i best-effort ( -c 2
), przy czym niższe wartości są wyższym priorytetem, podobnie jak wartości ładne (ale w zakresie 0-7). Jednak polecenie ionice nie jest absolutnie konieczne, ponieważ klasa i priorytet planowania we / wy są domyślnie wyprowadzane z parametrów planowania procesora i nice -n 19
implikują ionice -c 2 -n 7
.
Można jednak uzyskać absolutnie minimalne zużycie zasobów, ustawiając zarówno CPU, jak i klasy planowania we / wy na bezczynne. W obu przypadkach „bezczynne” harmonogramy nie są tak naprawdę bezczynnymi, a Ty nadal będziesz mógł korzystać z zasobów, po prostu wszystko będzie miało wyższy priorytet.
W przypadku klasy planowania procesora korzysta to również z chrt
polecenia, choć bez potrzeby nice
(priorytet musi być ustawiony 0
na bezczynną klasę planowania) i wygląda następująco:
chrt -i 0 {command or PID}
nice
Komenda na lustrach Linux wersji SVR4, co oznacza, że nie można zmienić klasę planowania, tylko piękny wartość (która również zachowuje się inaczej niż na klasycznej Linux UNIX, ale to trochę OT). Jako oryginalne alternatywne zajęcia harmonogramów były realtime POSIX.1E SCHED_RR
i SCHED_FIFO
polecenie, aby ustawić klas planowania skończyło się to nazywa chrt
. Do -i
opcja określa użycie SCHED_IDLE
klasy planowania
W przypadku klasy planowania we / wy używasz ionice
. Dokładne polecenie wygląda następująco:
ionice -c 3 {command or PID}
Ta -c
opcja określa, jakiej klasy planowania użyć, a 3 oznacza liczbę bezczynnych klas. Należy pamiętać, że w zależności od używanego harmonogramu we / wy bloków może to nie mieć żadnego wpływu. W szczególności program noop
planujący we / wy w ogóle nie obsługuje priorytetów ani klas planowania, i jestem prawie pewien, że deadline
programy planujące (zarówno starsze, jak i blk-mq) też nie.
Jeśli chcesz to zrobić programowo, albo dla własnego programu, albo w celu dostosowania do innych procesów, sprawdź strony podręcznika dla wywołań sched_setscheduler
i ioprio_set
wywołań systemowych (chociaż oba są warte przeczytania, jeśli tylko chcesz więcej tła).