介绍
在本次挑战中,你将探索如何管理 Linux 系统上的进程调度。进程调度是操作系统的核心功能,它决定了哪个进程可以使用 CPU 以及使用多长时间。作为系统管理员,你可以通过调整进程优先级来影响这种调度。你将使用 nice 和 renice 命令来控制进程优先级,这是优化系统性能并确保关键应用获得所需资源的必备技能。
以自定义优先级启动进程
在 Linux 中,每个进程都有一个「谦让度」(nice)值,它会影响进程的调度优先级。该值的范围从 -20(最高优先级)到 19(最低优先级)。nice 命令允许你在启动新命令时指定其谦让度值。请注意,只有根用户(或具有 sudo 权限的用户)才能设置负的谦让度值来提高进程优先级。
任务
- 使用
nice命令在后台启动一个新的sleep 600进程。 - 为该新进程分配高优先级,谦让度值为
-10。 - 使用
ps命令验证新进程的优先级。
要求
- 要运行的命令是
sleep 600。 - 进程必须以
-10的谦让度值启动。 - 你必须使用
sudo来分配负的谦让度值。 - 进程必须在后台运行,以便你可以继续使用终端。
示例
启动进程后,执行 ps -e -o pid,ni,comm | grep sleep 的输出应显示 sleep 进程的 NI(谦让度)值为 -10。进程 ID(PID)会有所不同。
ps -e -o pid,ni,comm | grep sleep
2250 -10 sleep
你也可以使用 ps -e -o pid,ni,comm 来查看所有进程及其谦让度值:
PID NI COMMAND
1 0 systemd
2188 0 bash
2250 -10 sleep
使用 renice 调整运行中进程的优先级
有时你需要更改已经在运行的进程的优先级。为此,你可以使用 renice 命令。与 nice 类似,你需要 sudo 权限来提高进程的优先级(设置更小或更负的谦让度值)。要更改其他用户(如 root)拥有的进程优先级,同样需要 sudo 权限。
任务
- 找到你在上一步中启动的
sleep 600进程的进程 ID(PID)。 - 使用
renice命令将其优先级调低,将谦让度值设为5。 - 使用
ps命令验证新的优先级级别。
要求
- 目标进程是上一步中的
sleep 600进程。 - 新的谦让度值必须为
5。 - 你必须使用
sudo来更改该进程的优先级(因为它是以sudo启动且由root拥有的)。
示例
运行 renice 命令后,ps -e -o pid,ni,comm | grep sleep 的输出应显示 sleep 进程的新 NI 值为 5。
ps -e -o pid,ni,comm | grep sleep
2250 5 sleep
你也可以使用 ps -e -o pid,ni,comm 来查看所有进程:
PID NI COMMAND
1 0 systemd
2188 0 bash
2250 5 sleep
总结
在本次挑战中,你学习了在 Linux 系统上调整进程调度优先级的基本方法。你练习了使用 nice 命令以特定优先级启动新进程,以及使用 renice 命令修改已运行进程的优先级。你还了解到,提高进程优先级(设置负的谦让度值)需要管理员权限(sudo)。这些技能对于系统管理和性能调优至关重要。



