在麒麟系统中,进程优先级通常通过 nice 或 renice 来调整。nice 值的范围是 -20 到 +19,数值越小,实际调度优先级越高。权限方面也有明确限制:普通用户只能设置 0 到 19,若要调整为负值,则必须使用 sudo。具体使用方式要看场景:启动程序时可写成 nice -n -5 cmd;如果进程已经在运行,则可通过 sudo renice -n -10 PID 动态修改。至于图形界面的任务管理器,一般只提供几档较粗略的优先级选项;如果是 systemd 管理的服务,还可以通过 CPUQuota 直接进行 CPU 使用率硬限制。

在麒麟操作系统中,如果想让某个应用程序(例如视频转码工具或 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 调度机会,但依然不会抢占实时进程(例如音频驱动)所需的资源。
用renice动态调整正在运行的进程优先级
当你发现某个已经运行的程序(如后台 Python 脚本)出现卡顿、响应变慢,又不希望重启它时,就可以使用 renice 对进程优先级进行实时调整。
第一步:先查出目标进程的 PID,执行ps aux | grep python,找到对应进程所在行,最左侧的数字就是 PID(例如 12345)。
第二步:执行sudo renice -n -10 12345,将该进程的 nice 值修改为 -10。需要注意的是,renice 不能直接填写进程名,必须使用 PID;【如果不加 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=70%
保存并退出后,再运行sudo systemctl daemon-reload && sudo systemctl restart ollama.service让配置正式生效。
设置完成后,该服务最多只能使用 70% 的单核等效 CPU 时间,即使负载突然升高,也不会明显拖慢桌面响应。这种方式基于 cgroup 的硬性资源配额控制,相比单纯调整 nice 优先级,更严格也更稳定。
