使用 renice
调整进程优先级
在本步骤中,你将学习如何影响正在运行的进程的调度优先级。在 Linux 中,“nice”值决定了一个进程相对于其他进程能获得多少 CPU 时间。nice 值范围从 -20(最高优先级)到 +19(最低优先级)。默认情况下,大多数进程的 nice 值为 0。较高的 nice 值意味着进程对其他进程更“友好”,更容易让出 CPU 时间。
我们将调整你一直在使用的 sleep
进程的优先级。要做到这一点,你首先需要它的进程 ID (PID)。你可以使用 ps
和 grep
再次找到它。
ps aux | grep sleep
查找与 sleep 300
对应的行(而不是 grep
命令本身),并记下第二列的 PID。
labex 23885 0.0 0.0 7264 868 pts/0 S 11:50 0:00 sleep 300
labex 24101 0.0 0.0 10788 2240 pts/0 S+ 12:15 0:00 grep --color=auto sleep
在这个例子中,PID 是 23885
。你必须在以下命令中使用你自己的输出中的 PID。
现在,让我们检查进程当前的 nice 值 (NI
)。带 -o
选项的 ps
命令允许你指定自定义输出列。
ps -o pid,ni,cmd -p <YOUR_PID>
将 <YOUR_PID>
替换为你 sleep
进程的实际 PID。例如:ps -o pid,ni,cmd -p 23885
。
PID NI CMD
23885 5 sleep 300
正如预期的那样,默认的 nice 值 (NI
) 是 5。
现在,让我们使用 renice
命令更改此值。我们将 nice 值增加到 10
,这将降低进程的优先级。普通用户只能增加自己进程的 nice 值(使其优先级降低)。
renice -n 10 -p <YOUR_PID>
同样,将 <YOUR_PID>
替换为你进程的 PID。该命令将报告旧的和新的优先级。
23885 (process ID) old priority 5, new priority 10
最后,通过再次运行 ps
命令来验证更改是否生效:
ps -o pid,ni,cmd -p <YOUR_PID>
输出现在应该显示新的 nice 值。
PID NI CMD
23885 10 sleep 300
你已成功更改了正在运行的进程的优先级。这是一种有用的技术,可以确保长时间运行的、非关键的后台任务不会干扰更重要的前台工作。