Linux 中的进程优先级 |不错的价值
程序的运行实例是进程,每个进程都需要RAM空间和CPU时间来执行,每个进程都有自己的优先级执行。
现在观察下图并查看列NI
top
输出:
列 NI 表示一个过程的好值。它的值范围从 -20 到 20(在大多数类似 unix 的操作系统上)。
-20 20
most priority least priority
process process
需要注意的一件重要事情是,nice 值仅控制分配给进程的 CPU 时间,而不控制内存和 I/O 设备的利用率。
nice 和 renice 命令
nice 命令用于启动具有指定 nice 值的进程,renice 命令用于更改正在运行的进程的优先级。
nice 命令的用法:
现在让我们假设系统只有 1GB 的 RAM 并且它的工作速度非常慢,即在其上运行的程序(进程)没有快速响应,在这种情况下,如果您想杀死某些进程,则需要启动终端, 如果您正常启动 bash shell,它也会产生延迟,但是您可以通过启动具有高优先级的 bash shell 来避免这种情况。
例如:
nice -n -5 bash
首先观察 top 的输出,而不在下图中设置任何进程的 nice 值
现在启动一个带有 nice 值 -5 的 bash shell,如果您看到突出显示的行,则在 bash shell 上运行的 top 命令的 nice 值设置为 -5
renice 命令的用法:
为了改变正在运行的进程的优先级,我们使用 renice 命令。
renice value PID
值是要分配的新优先级
PID是要改变优先级的进程的PID
需要注意的一件事是,您不能在没有 root 权限的情况下为任何进程设置高优先级,尽管任何普通用户都可以将高优先级设置为进程的低优先级。
我们将看到一个关于如何更改进程优先级的示例。
你可以观察到进程(PID = 2371)的nice值为0,现在让我们尝试为这个进程设置新的优先级5。
renice 5 2371
输出:
2371 (process ID) old priority 0, new priority 5
您还可以使用 top 命令查看此优先级(请参阅图像中突出显示的行)。