admin 管理员组

文章数量: 887839


2023年12月17日发(作者:ubuntu设置ip地址)

Linux 更改进程的优先级

在Linux系统中,各个进程都是具有特定的优先级的,系统在为某个进程分配CPU使用时间时是根据进程的优先级进行判定的。有些进程比较重要,需要先执行,以提高整个程序的执行效率,而有些不太重要的进程,其优先级可以低一些。

通常情况下,大多数用户进程的优先级是相同的,但是可以使用系统提供的某些命令改变进程的优先级。通过执行“ps -l”命令可以查看当前用户进程的优先级,如图43所示。

图43 查看进程的优先级

在上面所示的执行结果中,PRI和NI是两个与进程优先级有关的项。其中,PRI表示进程的优先级,它是由操作系统动态计算的,是实际的进程优先级;NI所表示的是请求进程执行优先级,它可由进程拥有者或者超级用户进行设置,会影响到实际的进程优先级。下面介绍两个可以改变进程优先级的命令。

1.nice命令

nice命令的使用是在启动进程时指定请求进程执行优先级。语法格式如下所示:

语法格式:

格式:nice 【选项】 命令

该命令较常用的一个选项是“-n”,n值(即NI值)的范围是从-20到19。-20代表最高的NI优先级,19代表最低的NI优先级。如果没有该参数,将自动设置NI值为10。默认情况下,只有超级用户才有权提高请求进程的优先级,而普通用户只能降低请求进程的优先级。

例如,以前台运行方式启动vim进程,并配合使用nice命令将vim进程的请求优先级设置为-16。再使用“ps –l”命令查看设置结果,如图44所示。

图44 nice命令

2.renice命令

renice命令的作用是在进程执行时更改它的NI值,可以通过命令名、PID或者进程所有者名指定进程。语法格式如下所示:

语法格式:

renice [+/-n] [-g 命令名称...] [-p 进程标识码...] [-u 进程所有者...]

nice命令是在启动进程时指定NI值,而renice命令是在进程执行时更改NI值。例如,以后台运行方式启动find进程,并使用nice命令将该进程的请求优先级设置为10(默认值),然后使用“ps –l”命令可观察到find进程的NI为10、PID为3483。

接着,使用renice命令将find进程的优先级更改为-6。等过了一段时间后,再使用renice命令更改find进程的优先级时,系统提示:没有那个进程了,也即它已终止了,因而该命令是无效的,如图45所示。

图45 renice命令


本文标签: 进程 命令 执行