linux中调整进程cpu调度权重需通过nice值实现:-20最高优先级,+19最低;普通用户仅能设0~19,root可设负值;启动用nice,运行中用renice,图形界面任务管理器提供高/正常/低三档快捷设置,systemd服务则通过cpuquota永久限频。

在麒麟操作系统中让某个程序(比如视频转码工具或AI推理进程)抢到更多CPU时间、更快响应用户操作,需要调整其调度优先级,而不是简单地“设为高优先级”——Linux内核实际通过nice值控制进程调度权重,数值越小越优先。
启动新进程时用nice指定优先级
这一步适用于你还没运行目标程序,想从一开始就让它获得更高调度权重。
打开终端,输入命令:nice -n -5 /usr/bin/firefox。其中-5表示将nice值设为-5(比默认0更高优先级),【只有root或sudo权限才能设置负值】,普通用户只能设0~19。
如果提示“Permission denied”,说明当前用户无权降低nice值,需加sudo:sudo nice -n -5 /usr/bin/firefox,然后输入密码。
启动后,该Firefox实例在整个生命周期内都享有更高CPU调度机会,但不会抢占实时进程(如音频驱动)的资源。
动态调整正在运行的进程优先级
当你发现某个已运行的程序(如后台Python脚本)卡顿、响应慢,又不想重启它,就用renice实时调优。
① 查出目标进程PID,执行ps aux | grep python,找到对应行最左列数字即PID(例如12345)。
② 执行sudo renice -n -10 12345,将该进程nice值设为-10。【若跳过sudo,普通用户无法将nice值调低】。
③ 验证是否生效,运行ps -o pid,ni,comm -p 12345,输出中NI列应显示-10。
该操作立即生效,无需重启进程,但系统重启后失效。
通过图形化任务管理器快速设优先级
适合桌面用户临时干预高CPU占用进程,无需记命令,但仅支持有限档位(低/正常/高)。
按下Ctrl + Shift + Esc打开任务管理器→切换到“进程”页签→点击列标题“CPU%”排序,找到占用最高的进程→右键该进程→选择“设置优先级”→在弹出菜单中选“高”。
这本质是调用renice封装逻辑,底层仍走nice值映射:高→-5,正常→0,低→10。但界面不显示具体数值,也不允许设-15或+15等精细值。
注意:此操作对systemd托管的服务(如dbus、gdm)无效,右键菜单中不会出现“设置优先级”选项。
永久限制某服务的CPU使用上限(systemd方式)
适用于长期运行的后台服务(如Ollama、MinIO),防止其突发计算吃光全部CPU,影响前台交互流畅度。
执行sudo systemctl edit ollama.service,在打开的编辑器中添加以下内容:
[Service]CPUQuota=50%
保存并退出,执行sudo systemctl daemon-reload,再执行sudo systemctl restart ollama.service。
该配置会硬性限制该服务每秒最多使用0.5个CPU核心等效时间,重启后持续生效。











