商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > Linux怎么调整进程的优先级

Linux怎么调整进程的优先级

  发布于2026-08-16 阅读(0)

扫一扫,手机访问

对已经在运行中的进程来说,renice算是最省事也最稳妥的优先级调整手段。普通用户通常只能把nice值调高,也就是让进程优先级往下降;只有root才有权限把nice值调低,甚至设成负值。它还支持按PID、按用户,或者按进程组进行批量修改。改完之后,最好再配合ps或top确认一下ni值有没有真正生效。

Linux怎么调整进程的优先级

renice 是调整已运行进程优先级最直接、最可靠的方式,普通用户能调高(nicer 值变大),root 才能调低或设负值。

renice 动态改正在跑的进程

renice 不重启进程就能生效,但权限限制很实际:普通用户只能把自家进程的 ni 值往大了调(比如从 0 改成 10),不能设负数,也不能碰别人家的进程。root 没这限制。
  • 先查 PID:ps aux | grep nginxpidof python3
  • 调高自家进程(安全):renice -n 12 -p 5678
  • 调低或设负值(需 root):sudo renice -n -15 -p 5678
  • 批量调同名进程:sudo renice -n 8 $(pidof ja va)
注意:renice 改的是 ni 字段,不是 pripri 是算出来的(≈ 80 + ni),别指望手动写进 /proc/PID/stat —— 那个文件只读,硬写会失败。

top 交互式快速定位再改

适合临时调试,不用记 PID,但得在 top 界面里操作,且只对 SCHED_OTHER 类进程有效(绝大多数普通进程都是)。
  • 运行 top,按 r
  • 输入目标进程 PID,回车
  • 输入新 ni 值(-20 到 19),回车
  • NI 列是否立刻更新,没变说明权限不够或进程状态异常(比如 D 状态)
别在 top 里输错两次以上,有些系统会直接退出交互模式,得重进。

启动时就设好优先级: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 的地盘。

验证改没改成功,别信感觉

改完不验证等于没改。必须看 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 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注