🐧 Использование команд nice и renice для изменения приоритета процессов в Linux |

🐧 Использование команд nice и renice для изменения приоритета процессов в Linux

Мануал

С помощью команд nice и renice можно изменить, должен ли определенный процесс получать приоритет при потреблении CPU.

Каждый процесс, запущенный на Linux-машине, имеет приоритет выполнения, который можно выразить в том, сколько мощности процессора будет отдано этому процессу для выполнения.

Конечно, в Linux вы можете контролировать столько, сколько хотите, поэтому вы также можете контролировать, какой приоритет должен быть у того или иного процесса в системе при его запуске.

Как проверить приоритет процесса?

Если вы выполните команду ps, вы сможете увидеть, какие процессы запущены в вашей системе Linux, и какой у них приоритет:

Как найти время выполнения команды или процесса в Linux

Теперь, если вы хотите запустить что-то с большим приоритетом (в то время как приоритет – это больше мощности процессора), вы можете использовать команду ‘nice’, чтобы запустить его и контролировать, насколько этот конкретный процесс влияет на остальную систему.

Приоритет “влияния” этой команды идет от -20 до 19, где -20 означает наивысший приоритет и, как следствие, как можно больше мощности процессора, до 19, что является наименьшим возможным значением и, следовательно, меньшим назначением мощности процессора.

🐧 Понимание процессов Linux с нуля

Как использовать команду nice?

Чтобы использовать команду nice, вы должны быть root или иметь права sudo в системе, поскольку это очень тонкая команда.

Предполагая, что вы являетесь root, введите:

nice -n 12 <command>

Команда сообщит системе, что вы хотите запустить <command>, используя приоритет 12 (по умолчанию 10, если вы не введете никакого значения).

В принципе, она будет занимать низкое место в списке приоритетов и, следовательно, не будет высасывать всю мощность процессора.

Для чего это полезно?

Представьте, что у вас есть процесс, который выполняет несколько вычислений и может занимать несколько секунд или даже минут.

Чем больше мощности будет выделено этому процессу, тем быстрее он будет выполняться и завершится.

Именно здесь эта команда может стать полезной, хотя и опасной.

🐧 Опасные команды Linux

Если у вас есть скрипт, который запускает множество процессов, в общей среде или на рабочем сервере, запуск чего-то с более высоким приоритетом может привести к тому, что сервер перестанет реагировать на запросы или станет неисправным.

Это связано с тем, что процессор будет занят почти исключительно запуском процесса, который вы вызвали с высоким приоритетом (или отрицательным значением), поэтому он станет невосприимчивым или даже убьет сервер, если ваш скрипт, например, имеет бесконечный цикл.

Как изменить приоритет запущенного процесса с помощью команды renice?

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

Здесь на помощь приходит команда ‘renice’.

Команда ‘renice’ может быть использована очень похожим образом и с использованием той же концепции, что и команда nice, однако она предназначена для изменения приоритета, который вы уже назвали nice.

Итак, если вы уже выполняете команду с помощью nice, вы можете изменить ее приоритет с помощью renice следующим образом (опять же, выполняя ее от имени пользователя root):

renice -n -10 <command>

Это изменит предыдущий приоритет процесса на более важный, поэтому теперь он имеет больше полномочий (-10).

Вы даже можете использовать его для всех процессов, принадлежащих определенному пользователю, например:

renice -n -10 -u helder

Это изменит приоритет всех процессов, принадлежащих пользователю helder.

Аналогично можно использовать такие опции, как -p и указать идентификатор процесса (или pid) или -g и использовать идентификатор группы процессов.

Заключение

Вы видите, как Linux позволяет контролировать все, что возможно в вашей системе, и позволяет использовать это в свою пользу.

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

см. также:

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий