Что именно подразумевается под "незаметным" и "незаметным" пользовательским процессом?
Я использовал команду "top " и наткнулся на приятное значение. Я знаю о приоритетах и о том, как хорошее значение указывает на приоритет процесса. Но я не могу понять, что означает термин "без внимания" или "без внимания".
1 ответ
Эти термины просто указывают на то, было ли изменено стандартное значение процесса по умолчанию. "Замкнутый" процесс - это тот, который был запущен с nice
команда (или чья милость была изменена renice
) и "незаметным" процессом является тот, который не был запущен с nice
, Хорошие значения по умолчанию для обычных процессов (те, которые не были запущены с nice command
или чья милость не была впоследствии изменена renice PID
) равно 0. Таким образом, "незамеченными" являются процессы с хорошим значением 0, а "отмеченными" являются процессы с хорошим значением!= 0.
Хорошее значение не указывает на приоритет процесса, оно указывает на правильность процесса. Вы можете увидеть оба значения в выводе top
:
$ top -b -n1 | head
top - 15:23:10 up 20:59, 1 user, load average: 1.41, 1.75, 1.88
Tasks: 222 total, 1 running, 221 sleeping, 0 stopped, 0 zombie
%Cpu(s): 14.2 us, 7.9 sy, 0.0 ni, 76.6 id, 0.6 wa, 0.0 hi, 0.6 si, 0.0 st
GiB Mem : 7.791 total, 3.082 free, 3.862 used, 0.846 buff/cache
GiB Swap: 16.000 total, 15.793 free, 0.207 used. 3.485 avail Mem
PID USER PR NI VIRT RES %CPU %MEM TIME+ S COMMAND
1591 terdon 20 0 1605.1m 362.3m 18.8 4.5 285:46.34 S chromium
1754 terdon 20 0 790.8m 184.5m 18.8 2.3 405:54.21 S chromium
1186 terdon 20 0 1992.8m 459.6m 12.5 5.8 119:31.59 S cinnamon
^^ ^^
| |---------> niceness
|-------------> priority
Если я сейчас установлю хорошее значение для одного из этих процессов хрома, вы увидите разницу:
$ renice 10 1591
1591 (process ID) old priority 0, new priority 10
$ top -b -n1 | head
top - 15:24:56 up 21:01, 1 user, load average: 0.89, 1.48, 1.77
Tasks: 225 total, 1 running, 224 sleeping, 0 stopped, 0 zombie
%Cpu(s): 14.2 us, 7.9 sy, 0.0 ni, 76.6 id, 0.6 wa, 0.0 hi, 0.6 si, 0.0 st
GiB Mem : 7.791 total, 3.033 free, 3.908 used, 0.849 buff/cache
GiB Swap: 16.000 total, 15.793 free, 0.207 used. 3.439 avail Mem
PID USER PR NI VIRT RES %CPU %MEM TIME+ S COMMAND
1591 terdon 30 10 1605.1m 362.6m 23.5 4.5 286:10.40 S chromium
1754 terdon 20 0 790.8m 184.5m 18.8 2.3 405:54.21 S chromium
1186 terdon 20 0 1992.8m 459.6m 12.5 5.8 119:31.59 S cinnamon
Хорошее значение процесса используется для определения его приоритета, но фактический приоритет процесса (PR
колонка) это не то же самое, что его милость. Проще говоря, значения правильности определяют, насколько "приятен" процесс для других процессов вашей системы. Если он очень хороший (высокие значения), он будет "вежливым" и позволит другим процессам иметь приоритет и использовать больше процессорного времени (другими словами, он будет иметь низкий приоритет). Если это не очень хорошо, он попытается получить как можно больше процессорного времени для себя (поэтому он будет иметь высокий приоритет).
Чтобы сделать вещи еще более странными, значения приоритета варьируются от -20 (наивысший) до +20 (наименьший), а значения добротности варьируются от 19 (наивысшая точность, поэтому наименьший приоритет) до -20 (самая низкая точность, поэтому самая высокая приоритет).
Я не знаю точный механизм, с помощью которого значение милости превращается в приоритет. Детали, похоже, зависят от версии ядра и конкретной реализации (см. Раздел "Примечания" здесь). Однако, как грубое приближение, вы можете думать об этом как:
Priority = DefaultPriority + Niceness
Чтобы проиллюстрировать это, я запустил 3 экземпляра скрипта foo.sh
(который просто запускает sleep
команда) с разными значениями добротности:
foo.sh & # default
nice -n 10 foo.sh
nice -n 15 foo.sh
sudo nice -n -10 foo.sh
Последний использует sudo
потому что только root может запускать процессы с отрицательным (высоким) приоритетом. Теперь посмотрим, каковы их приоритеты:
$ top -b -n1 | grep foo.sh
21958 terdon 20 0 13.3m 2.7m 0.0 0.0 0:00.00 S foo.sh
22148 terdon 30 10 13.3m 2.7m 0.0 0.0 0:00.00 S foo.sh
22181 terdon 35 15 13.3m 2.7m 0.0 0.0 0:00.00 S foo.sh
23480 root 10 -10 13.3m 2.6m 0.0 0.0 0:00.00 S foo.sh
Как вы можете видеть выше, приоритет равен сумме значения милости и 20, приоритета по умолчанию.