Приостановка несущественных процессов ЦП - PullRequest
1 голос
/ 21 января 2012

Можно ли дать команду ЦПУ приостановить все несущественные процессы, пока моя программа не закончит обработку?Цель состоит в том, чтобы уменьшить количество процессов, конкурирующих за время обработки ЦП, и в конечном итоге я ожидаю улучшения времени выполнения моей программы в настенные часы.

Итак, я хочу запустить свою программу, дать команду ЦПприостанавливать несущественные процессы, кроме моей программы, и когда моя программа завершает свою работу, процессор может возобновить ранее приостановленные процессы.

1 Ответ

2 голосов
/ 21 января 2012

В linux очевидная начальная тактика - повысить приоритет вашего процесса с помощью renice.Чем ниже значение nice , тем выше приоритет с максимальным приоритетом -20.

(здесь я, например, создаю длительный процесс)

sleep 100000 &

как root grep для процесса;

ps -ef | grep sleep

500       **4323**  2995  0 18:44 pts/1    00:00:00 sleep 100000
500       4371  2995  0 18:45 pts/1    00:00:00 grep --color=auto sleep

назначить процесс с очень высоким приоритетом;

renice -20 4323

Вы также можете отправлять сигналы SIGSTOP и SIGCONT для остановки и продолжения определенных процессов.вот так;

skill -STOP -p <processid>
skill -CONT -p <processid>

К сожалению, то, что представляет собой несущественные процессы, зависит от вашего собственного определения.Вы можете остановить все процессы без полномочий root, изучив список процессов и используя следующую команду, чтобы временно остановить все процессы конкретного пользователя:

skill -STOP -u <userid>
skill -CONT -u <userid>

Очевидно, остерегайтесь остановки таких процессов, как оболочка, которая породила вашукорневая сессия sudo.

...