如何更改Linux中进程的优先级
在UNIX生态系统中,一个过程是一个正在运行的程序。
因此,在Linux盒上运行的任何程序都是一个过程。
一次或者多个进程一次可以在Linux盒上运行。
我们可以使用PS命令显示有关活动进程的信息。
默认情况下,PS命令仅显示当前用户的进程。
我们可以使用"ps -ef"(不带引号,当然)命令来显示所有进程。
要查看进程的用户,我们使用"ps -u"。
希望我们对Linux进程进行了基本思路。
让我们现在来到这一点。
本教程地址如何使用良好的endice命令更改Linux中进程的优先级。
如我们所知,默认情况下,Linux内核将所有进程考虑所有进程同样重要,并为每个进程分配相同数量的CPU时间。
有时,我们可能希望增加或者减少某些过程的优先级以利用更多CPU时间。
这是尼斯和雷尼斯命令有所帮助的地方。
尼斯命令用于运行具有用户定义优先级的进程,而engice命令用于更改运行进程的优先级。
通常,尼斯和engice命令用于更改优先级,而不是进程的默认优先级。
用nice命令更改进程的优先级
查看进程的默认优先级
每当一个进程正常开始时,它会获得默认的优先级值。
我们使用CMUS程序,命令行媒体播放器是为了本教程的目的。
使用命令运行它:
$cmus &
注意:如果控制操作符&终止命令,则shell在子屏幕中执行该命令。
现在让我们查看使用命令的运行进程:
$ps -al
示例输出:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 T 1000 13829 13704 0 80 0 - 39431 signal pts/0 00:00:00 cmus 0 R 1000 13848 13704 0 80 0 - 8148 - pts/0 00:00:00 ps
如上所述,在上述输出中,熟悉值在列标题"NI"列下。
因此,显然所有进程都会获得默认的优先级零。
用nice实用程序启动一个进程
如果我们在没有任何参数的情况下使用nice命令启动进程,则会获取默认值10.这里10是nice值或者优先级。
高度值范围从-20(最有利于进程)到19(最不利于进程)。
要简单地进行这一点,负值(例如,.20)给出了一个更高的进程,并且正值(例如,19)给出了较低的优先级。
现在,让我们使用命令停止运行程序CMU:
$kill -9 13829
其中13829是CMUS程序的PID。
我们将在上面输出中查看"PID"下的此值。
现在,使用"漂亮"实用程序运行CMUS程序。
$nice cmus &
使用命令检查运行进程:
$ps -al
示例输出:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 T 1000 13957 13704 0 90 10 - 55815 signal pts/0 00:00:00 cmus 0 R 1000 13985 13704 0 80 0 - 8148 - pts/0 00:00:00 ps
请参阅,现在CMUS进程得到了默认的熟情值10,这意味着它的优先级已更改。
启动具有较低优先级的nice的进程
此外,我们可以开始具有特定高度值的相同进程,例如15,如下面。
用kill命令杀死进程:
$kill -9 13957
再次,设置nice值为15:
$nice -15 cmus &
注意:其中不要将(连字符)与减号混为一谈。
我们使用(连字符)通过一个值。
因此,要分配正值,我们使用-15.
同样,要分配负值,我们使用--15(i.e双连字符)。
让我们使用ps -al命令检查善良值:
$ps -al
示例输出:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 T 1000 14060 13704 0 95 15 - 55815 signal pts/0 00:00:00 cmus 0 R 1000 14069 13704 0 80 0 - 8148 - pts/0 00:00:00 ps
看看,现在CMUS过程得到了善良的价值15.
在上述示例中,我们推出了优先级较低的流程。
记住积极的质量值表示较低的优先级。
启动一个具有更高优先级的良好实用程序的进程
我们已经知道负面的熟格值代表更高的优先级。
请注意,常规用户不允许启动具有更高优先级的流程。
我们需要成为root用户来启动具有更高优先级的任何进程。
因此,要使用具有较低优先级的漂亮实用程序启动进程,例如-15,运行以下命令:
# nice --15 cmus &
示例输出:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 14331 14306 0 80 0 - 20531 poll_s pts/0 00:00:00 sudo 4 S 0 14332 14331 0 80 0 - 13796 wait pts/0 00:00:00 su 4 S 0 14333 14332 0 80 0 - 5736 wait pts/0 00:00:00 bash 4 T 0 14358 14333 0 65 -15 - 55643 signal pts/0 00:00:00 cmus 0 R 0 14366 14333 0 80 0 - 8148 - pts/0 00:00:00 ps
使用-n选项启动进程
我们还可以使用-n选项来增加或者减少优先级。
要提高优先级,请按照root用户运行以下命令:
# nice -n -15 cmus &
要减少优先级,请按照普通用户运行以下命令:
$nice -n 15 cmus &
下载 - 免费电子书:"Amazon S3教程"
使用Renice命令更改运行进程的优先级
到目前为止,我们所看到的是我们通过用户定义优先级推出了一个进程。
现在,我们将使用Renice命令更改运行进程的优先级。
让我们查看使用命令的运行进程:
$ps -al
示例输出:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 T 1000 15059 14306 0 95 15 - 55815 signal pts/0 00:00:00 cmus 0 R 1000 15066 14306 0 80 0 - 8148 - pts/0 00:00:00 ps
在上面的输出中看到,CMUS正在运行较低优先级为15.
要更改运行进程的当前质量值,例如18,请执行以下命令:
$renice -n 18 -p 15059
其中15059是CMUS过程的过程ID。
示例输出将是:
15059 (process ID) old priority 15, new priority 18
使用命令验证熟练度值:
$ps -al
示例输出:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 T 1000 15059 14306 0 98 18 - 55815 signal pts/0 00:00:00 cmus 0 R 1000 15074 14306 0 80 0 - 8148 - pts/0 00:00:00 ps
要将其更改为负质性值(以分配更高的优先级),请按照root用户运行以下命令:
# renice -n -20 -p 14749
我们甚至可以更改所有运行组的优先级,属于以下的特定组。
# renice -n -20 -g theitroad
上面的命令更改了所有运行进程的优先级,属于名为InItoad的组。
此外,我们可以使用命令更改特定用户拥有的运行进程的优先级:
# renice -n -20 -u sk
有关更多选项,我建议我们引用尼斯和renice实用程序的man 页面。
$man nice
$man renice