cpulimit可精准限制进程cpu使用率:按pid执行cpulimit -p pid -l 百分比,按程序名执行cpulimit -e 名称 -l 百分比 -i(-i含子进程),后台运行加-b;长期限流推荐systemd的cpuquota机制。

在麒麟系统中限制某个进程占用的最大CPU百分比,能快速缓解因单个程序失控导致的系统卡顿、风扇狂转或响应迟缓问题。你不需要重启服务或重装软件,只需一条命令即可生效,且对其他进程完全无感。
用cpulimit按PID限制CPU使用率
这是最精准、最常用的临时限流方式,适用于已知进程ID(PID)的场景。
1、先打开终端(Ctrl + Alt + T),用top或ps查出目标进程PID:
执行 ps aux | grep -i [程序名],例如 ps aux | grep -i firefox,第二列数字就是PID。
2、运行cpulimit命令,格式为:
cpulimit -p [PID] -l [百分比],例如限制PID为1234的进程最多用40% CPU:
cpulimit -p 1234 -l 40
3、该命令会持续运行并监控该进程——【它不会自动转入后台,终端被占用时请加-b参数】。若需释放终端,改用:
cpulimit -b -p 1234 -l 40
4、终止限制只需找到对应cpulimit进程并kill:
执行 ps aux | grep cpulimit → 找到含“-p 1234”的行 → 记下其PID → 执行 kill [cpulimit的PID]
按进程名批量限制所有同名实例
适合浏览器、Java应用、Python脚本等常派生多个子进程的程序,一次锁定全部实例。
方法一:直接按名称启动限流
cpulimit -e firefox -l 25 —— 自动查找所有firefox进程并统一限制在25%以内。
方法二:限制时附带子进程联动
cpulimit -e python3 -l 30 -i —— 【-i参数确保新fork的子进程也被纳入限制范围,否则子进程可能逃逸限流】
注意:-e后跟的是可执行文件名(如python3、chrome、java),不是.py或.jar文件名。
让限制长期生效(开机自启+服务化)
若该进程是系统级服务(如nginx、redis、自研守护进程),推荐用systemd原生命令实现内核级配额,比cpulimit更稳定、无抖动。
第一步:确认服务名
执行 systemctl list-units --type=service | grep -i [关键词],例如 systemctl list-units --type=service | grep nginx,得到服务名为 nginx.service。
第二步:设置CPU配额
执行 sudo systemctl edit nginx.service,在打开的编辑器中输入:
[Service]
CPUQuota=45%
第三步:重载并重启服务
sudo systemctl daemon-reload → sudo systemctl restart nginx.service
验证是否生效:执行 systemctl show nginx.service | grep CPUQuota,输出应为 CPUQuota=45%;再用 top 观察其%CPU值是否被稳定压在45%附近。











