Linux nice和renice命令教程(7个示例)

Linux nice和renice命令教程(7个示例)

Linux命令行的威力可以从以下事实来衡量:您甚至可以使用命令行工具轻松调整进程的调度优先级。 是的,这是可能的,在本教程中,我们将讨论如何使用nicerenice实用程序来实现这一点。

但在这之前,值得一提的是本文中的所有示例都已在Ubuntu 16.04LTS系统上进行了测试。

Linux nice和renice命令

尽管nice命令允许您以修改的调度优先级执行程序/进程,但renice命令允许您更改已运行进程的调度优先级。 以下是这两个命令的通用语法:

nice [OPTION] [COMMAND [ARG]...]
renice [-n] priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

以下是他们各自的手册页要说的:

Nice: 
Run COMMAND with an adjusted niceness, which affects process schedul?
ing. With no COMMAND, print the current niceness. Niceness values
range from -20 (most favorable to the process) to 19 (least favorable
to the process).
Renice:
Renice alters the scheduling priority of one or more running processes.
The following who parameters are interpreted as process ID's, process
group ID's, or user names. Renice'ing a process group causes all pro?
cesses in the process group to have their scheduling priority altered.
Renice'ing a user causes all processes owned by the user to have their
scheduling priority altered. By default, the processes to be affected
are specified by their process ID's.

以下是一些Q&A样式的示例,可以让您更好地了解这些工具的工作原理。

Q1。 如何检查正在运行的程序/进程的好处?

是的,首先应该知道如何在改变之前检查现有的调度优先级。 如果是关于您即将运行的流程,那么您应该知道默认调度优先级始终为0。

例如,我们执行了以下过程:

./test-new

并使用以下命令确认优先级:

ps -lu himanshu | grep test-new

在这里,'himanshu'是拥有'测试新'流程的用户。 以下是上述命令的输出结果:

0 S  1000  6306  6125  0  80   0 -   508 hrtime pts/18   00:00:00 test-new

第8列的值是很好的值,正如你所看到的那样,它是零。

Q2。 命令有多好?

所以,现在到了这一点,好的命令是如何工作的? 这很简单 - 只需按以下方式使用该工具即可:

nice -PRIORITY COMMAND

例如,如果我希望调度优先级为10,那么我可以这样做:

nice -10 ./test-new

以下是此例中的ps命令输出,确认优先级已更改为10。

0 S  1000  6694  6125  0  90  10 -   508 hrtime pts/18   00:00:00 test-new

Q3。 如何用负面价值做出好的工作?

正如开头已经提到的那样,善良值范围从-20到19,前者是最有利的,而后者是最不利的。 如果你想将一个负面的好价值与过程联系起来,那么你将不得不使用双连字符。

例如,

sudo nice --10 ./test-new

请注意,您需要拥有root权限才能将良好的负面价值与流程相关联。 正是因为这个原因,你的ps命令来确认新的好处应该包含'root'而不是其他用户名。

$ ps -lu root | grep test-new

下面是我们的例子中输出的命令:

4 S 0 7054 7053 0 70 -10 - 508 - pts/18 00:00:00 test-new

所以你可以看到这个过程现在运行在一个很好的-10值。

Q4。 如何将一个整数值添加到niceness?

您可以使用-n命令行选项来调整nice值,该选项将一个整数值添加到niceness中。 默认情况下,此设置值为10,但您也可以传递不同的值。

-n, --adjustment=N

例如:

nice --adjustment=5 ./test-new

这里是输出,在这种情况下产生的ps命令:

0 S 1000 7314 6125 0 85 5 - 508 hrtime pts/18 00:00:00 test-new

所以你可以看到5的优先级被设置。

Q5。 如何更改正在运行的进程的优先级?

虽然nice命令在启动程序时使用,但renice命令可让您更改正在运行的进程的优先级。 例如,以下是我们如何将已运行的“测试新”过程的优先级从5更改为15。

renice -n 15 -p 7314

-p参数用于进程ID。 以下是上述命令的输出结果:

7314 (process ID) old priority 5, new priority 15

而好的价值确实变成了15。

Q6。 如何更改属于组的所有进程的优先级?

你可以为此使用-g选项。 例如:

renice -n 20 -g youcl

上述命令将更改属于组“youcl”的所有进程的优先级。

Q7。 如何更改属于用户的所有进程的优先级?

要更改与用户关联的所有程序的优先级,请使用-u选项。 例如:

renice -n 5 -u himanshu

结论

当然,一个普通的Linux命令行用户通常不会遇到需要这些工具的情况,但是知道重要的命令行工具总是好的,而好的和renice就是其中之一。 好的是,与他们相关的学习曲线根本不陡峭。 我们已经在这里讨论了大部分的选项。 有关这些实用程序的更多信息,请转到他们的手册页 - 在这里这里

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏