我们可以使用top命令查看正在运行的程序。
top
我们可以在上面看到艾克曼项目的细节。数值为“NI列”中的数字。正如我们预期的那样,它被设为零。
让我们重新启动它,这一次使它不那么苛刻。“我们将为Ackermann程序设置一个很好的值15,如下所示。键入NICE、空格、-15、另一个空格,然后输入要启动的程序的名称。在我们的示例中,我们虚构的程序员使用./Ackermann。
nice -15 ./ackermann
请注意,“-15”不是负15。是正十五。需要“-”来告诉NICE我们正在传递一个参数。要指示负数,您必须键入两个“-”字符。
如果我们现在重新开始top,我们可以看到Ackermann行为的变化。
top
Ackermann的值很不错,为15,因此不会消耗最多的CPU时间。GNOME和Rhythmbox都在使用更多。我们已经把阿克曼控制住了。
现在让我们反其道而行之,给Ackermann一个负的nice值。注意两个“-”字符的使用。要使应用程序更自私、更不友好,必须使用sudo。任何人都可以让他们的应用程序变得更好,但只有超级用户才能让人变得更自私。
sudo nice --10 ./ackermann
让我们跑到最上面,看看这有什么不同。
top
这一次,阿克曼的值很不错,为-10。它又回到了第一位,并且比以前消耗了更多的CPU时间。
renice命令
renice命令允许我们调整正在运行的进程的nice值。我们不需要停止它,然后用NICE重新启动它。我们可以动态设置新值。
renice命令将进程的进程ID或PID作为命令行参数。我们可以从顶部的“PID”列提取进程ID,也可以使用ps和grep为我们查找它,如下所示。显然,您将键入用户名,而不是Dave;键入您感兴趣的进程名称,而不是Ackermann。
ps -eu dave | grep ackermann
现在我们有了PID,我们可以使用它了。我们将把Ackermann重新设置为更好的行为,值为5。要更改正在运行的进程的nice值,您必须使用sudo。请注意,5个参数上没有“-”。正数不需要一个,负数只需要一个,而不是两个。
sudo renice -n 5 2339
我们得到确认,Renice已经更改了nice值。它向我们展示了旧的价值和新的价值。
内核通常在处理优先级、分配CPU时间和系统资源方面做得很好。但是,如果您有一个很长的CPU密集型任务要运行,并且您并不关心它什么时候结束,那么如果您为该任务设置一个更高的较好的值,它会使您的计算机运行得更流畅一些。那对每个人来说都会更好。