游乐游手机版
首页/系统平台/文章详情

Linux中如何调整进程优先级与nice值

时间:2026-08-16 15:32
对于已经在运行的进程来说,renice 通常是 Linux 调整进程优先级最省心、也最稳妥的方法。普通用户一般只能把 nice 值调高,也就是让进程优先级降低;只有 root 用户才有权限把 nice 值调低,甚至设置为负值。它还支持按 PID、按用户,或按进程组批量调整。修改完成后,最好再配合 p

对于已经在运行的进程来说,renice 通常是 Linux 调整进程优先级最省心、也最稳妥的方法。普通用户一般只能把 nice 值调高,也就是让进程优先级降低;只有 root 用户才有权限把 nice 值调低,甚至设置为负值。它还支持按 PID、按用户,或按进程组批量调整。修改完成后,最好再配合 ps 或 top 检查一下 ni 值是否已经真正生效。

Linux怎么调整进程的优先级

renice 是调整已运行进程优先级最直接、最可靠的方式,普通用户可以把 nice 值调大,而 root 才能把它调小或设为负数。

用 renice 动态调整正在运行的进程

renice 的优势是无需重启进程就能立即生效,但权限限制也很明确:普通用户只能把自己进程的 ni 值往大了调(例如从 0 改为 10),不能设置负值,也不能修改其他用户的进程。root 则不受这些限制。
  • 先查 PID:ps aux | grep nginx 或 pidof python3
  • 调高自己进程的 nice 值(更安全):renice -n 12 -p 5678
  • 调低 nice 值或设置负数(需要 root):sudo renice -n -15 -p 5678
  • 批量调整同名进程:sudo renice -n 8 $(pidof ja va)
需要注意的是:renice 修改的是 ni 字段,而不是 pri;pri 是系统计算出来的(大致可理解为 ≈ 80 + ni),不要尝试手动写入 /proc/PID/stat —— 这个文件是只读的,强行写入也不会成功。

用 top 交互式快速定位并修改优先级

这种方式适合临时排查或在线调试,不必提前记住 PID,但需要在 top 界面中操作,而且只对 SCHED_OTHER 类型的进程有效(绝大多数普通 Linux 进程都属于这一类)。
  • 运行 top,按 r 键
  • 输入目标进程的 PID,回车
  • 输入新的 ni 值(-20 到 19),回车
  • 观察 NI 列是否立即更新;如果没有变化,通常说明权限不足或进程状态异常(例如 D 状态)
另外,尽量不要在 top 里连续输错多次,有些系统可能会直接退出交互模式,需要重新进入。

启动时提前设置优先级:nice 命令

如果命令还没有启动,使用 nice 提前设置进程优先级会更方便,也更适合长期使用。
  • nice -n 15 tar -cf backup.tar /data —— 普通用户常见用法,用来降低 CPU 资源竞争
  • sudo nice -n -18 ./realtime_worker —— root 可以设置更高优先级,但要谨慎,可能影响其他进程正常调度
  • 省略 -n 也可以:nice -5 command 等价于 nice -n -5 command
nice 设置的是进程启动时的初始 ni 值,后续仍然可以被 renice 覆盖;但它不能用于已经存在的进程,这正是 renice 的用途。

验证是否修改成功,不要只凭感觉

调整完 Linux 进程优先级后,如果不验证,等于没有真正确认结果。最稳妥的方法是查看 ps 输出中的 ni 和计算后的 pri 是否符合预期。
  • 查看单个进程:ps -o pid,ni,pri,comm -p 5678
  • 按 ni 排序查看全局进程:ps -eo pid,ni,comm --sort=-ni | head -5
  • 如果 ni 没有变化,常见原因包括:权限不足、PID 写错、进程被 cgroups 限制,或者本身使用了实时调度策略(例如通过 chrt 设置过)
如果 ni 显示为 -,通常表示该进程不受 CFS 调度器管理(例如使用了 SCHED_FIFO),这时候 renice 不会生效,需要改用 chrt 来调整调度策略。
来源:https://www.php.cn/faq/2993478.html
上一篇CentOS查看系统版本信息的方法与命令 下一篇Linux查看磁盘控制器缓存策略状态的方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
VMware安装Ubuntu完整教程:创建虚拟机与启动验证
系统平台 · 2026-09-01

VMware安装Ubuntu完整教程:创建虚拟机与启动验证

本教程详细演示如何在VMware中创建Ubuntu虚拟机,涵盖ISO挂载、硬件配置、安装向导及启动验证。通过清晰的步骤与验证命令,帮助新手快速搭建可用的Linux学习环境。

Win10专业版U盘安装教程:制作启动盘与完整安装步骤
系统平台 · 2026-09-01

Win10专业版U盘安装教程:制作启动盘与完整安装步骤

本文提供Win10专业版U盘安装完整流程:准备8GB以上U盘与官方镜像,制作启动盘并核对盘符;通过F12 F11 Esc等快捷键或BIOS设置U盘为第一启动项;安装时选择专业版并谨慎分区;完成后在“设置—系统—关于”验证版本与激活状态。操作前务必备份数据。

Windows10系统字体太小怎么调大
系统平台 · 2026-08-27

Windows10系统字体太小怎么调大

Windows10系统字体太小怎么调大?只需两步:首先打开设置中的显示选项,将缩放比例调整为125%或150%;随后运行ClearType文本调谐器优化字体清晰度。此方法适用于高分屏及普通屏幕,无需修改注册表即可解决界面拥挤问题。

Win10磁盘占用100%基础排查:从监控到清理的完整步骤
系统平台 · 2026-08-27

Win10磁盘占用100%基础排查:从监控到清理的完整步骤

Windows 10系统出现磁盘占用100%会导致电脑卡顿、程序响应缓慢。本文提供基础排查方案:首先通过任务管理器确认是否为磁盘高负载,随后进入系统存储页面分析C盘占用类别,最后针对性清理临时文件。遵循此流程可有效缓解磁盘压力,避免盲目重装系统。

Windows10系统怎么显示此电脑和控制面板
系统平台 · 2026-08-27

Windows10系统怎么显示此电脑和控制面板

Windows10默认可能不显示桌面图标,导致找不到“此电脑”和“控制面板”。只需进入个性化设置,在“桌面图标设置”中勾选对应选项即可恢复。本文提供详细图文步骤,帮助快速找回系统入口。