Вы можете арендовать запущенный процесс, чтобы придать ему более или менее приоритетный характер (так называемое «хорошее значение»). Обратите внимание, что шкала приоритетов UNIX несколько нелогична: отрицательные значения означают, что процесс предпочтительнее параллельных процессов, т. Е. Имеет приоритет «больше».
Таким образом, вы можете попытаться «замедлить» ваш процесс, используя его PID через:
# lower priority of a process
renice +1 "PID"
Каждый раз, когда вы запускаете это, процесс "nice value" увеличивается на 1; Вы можете использовать целочисленные значения, кроме, +1
конечно.
Команда nice позволяет запустить процесс с корректировкой значения +10 nice (измените это с помощью опции -n
). Например:
# start a CPU-intensive task with low priority
nice ./cpu-hog
Однако «хорошее значение» влияет только на то, насколько планировщик предпочитает запускать определенный процесс над другими в системе: если ваш компьютер в основном работает на холостом ходу, повышение «хорошего значения» одного отдельного процесса не остановит этот процесс от принятия 100%. ЦПУ. Я цитирую на man-странице getpriority (2) : (Акцент сделан мной)
Степень, в которой их относительные значения влияют на планирование процессов, варьируется в разных системах Unix, а в Linux - в разных версиях ядра. Начиная с ядра 2.6.23, в Linux был принят алгоритм, обеспечивающий гораздо более сильный эффект относительных различий в хороших значениях. Это приводит к тому, что очень низкие приятные значения (+19) действительно обеспечивают мало процессорного времени для процесса всякий раз, когда в системе есть какая-либо другая более
высокая приоритетная нагрузка.
Причина этого кроется в том, как процессы запускаются в ядре, подобном UNIX: каждый раз, когда ядро решает запустить процесс, этот процесс полностью контролирует ядро процессора в течение определенного (фиксированного и короткого) промежутка времени. «Хорошее значение» может влиять на то, как часто планировщик ядра желает выделить временной интервал для процесса, но вы не можете изменить тот факт, что после планирования процесс будет работать без перерыва в течение фиксированного периода времени.
Следовательно, если не замедлять работу процессора, невозможно замедлить процесс, если в системе нет других процессов, которые могут бороться за доступ к процессору.