温馨提示×

centos怎么设置进程优先级

小樊
47
2026-10-20 17:56:42
栏目: 智能运维

在 CentOS(以及其他 Linux 发行版)中,可以通过 nice 值 和 renice 命令 来设置或调整进程优先级。


一、Linux 进程优先级基础

  • Linux 中进程的优先级由 nice 值决定
  • nice 值范围:-20(最高优先级) ~ 19(最低优先级)
  • 普通用户:
    • 只能 调低优先级(增大 nice 值)
    • 不能设置负 nice 值
  • root 用户:
    • 可设置任意 nice 值

二、启动进程时设置优先级(nice)

1️⃣ 使用 nice 命令启动进程

nice -n 10 command

示例:

nice -n 5 ./my_program

含义:以 nice=5 启动 my_program

如果是高优先级(需 root):

nice -n -10 ./my_program

三、调整已运行进程的优先级(renice)

1️⃣ 通过 PID 调整

renice -n 10 -p 1234

示例:

renice -n -5 -p 5678

2️⃣ 根据用户名调整所有进程

renice -n 5 -u username

3️⃣ 根据进程组调整

renice -n 5 -g 1234

四、查看进程优先级

1️⃣ 使用 ps

ps -eo pid,ni,pri,comm
  • NI:nice 值
  • PRI:内核优先级(PRI = 20 + NI)

2️⃣ 使用 top

top

在 NI 列查看 nice 值


五、CentOS 7 / 8 systemd 服务设置优先级

方法 1:修改 service 文件

[Service]
Nice=-10

示例:

vi /etc/systemd/system/my.service

然后:

systemctl daemon-reload
systemctl restart my.service

六、实时优先级(RT 调度,高级)

适用于实时任务(需 root):

chrt -r 50 ./my_program

查看:

chrt -p PID

七、常见建议

  • 普通程序:默认 0
  • 后台批处理任务:10~19
  • 关键服务(root):-10 ~ -20
  • 不要随意给进程设 -20,可能影响系统稳定性

如果你有 具体场景(如 MySQL、Java、备份任务、定时任务),我可以给你更合适的配置示例。

0 踩