在 Debian 里“限制进程 CPU”常见有几种方式,按使用场景从简单到专业给你梳理一下。
cpulimit(最简单)限制某个进程的 CPU 使用率
sudo apt install cpulimit
限制 PID 为 1234 的进程最多用 30% CPU:
cpulimit -p 1234 -l 30
按命令限制:
cpulimit -e nginx -l 20
✅ 优点:简单、不影响系统
❌ 缺点:进程重启需重新限制
systemd 限制 CPU(最规范)适合服务进程(nginx / mysql / java 等)
编辑 service:
sudo systemctl edit nginx
加入:
[Service]
CPUQuota=30%
生效:
sudo systemctl daemon-reload
sudo systemctl restart nginx
✅ 重启依然有效
✅ 不影响其他进程
taskset(绑定 CPU)限制进程只能跑在指定核心
sudo apt install util-linux
taskset -c 1,2 ./your_program
或:
taskset -cp 1 1234
✅ 减少干扰
❌ 不是“使用率”限制
cgroups(最强大)限制 CPU、内存、IO
sudo apt install cgroup-tools
示例(限制 0.5 核):
cgcreate -g cpu:/mygroup
cgset -r cpu.cfs_quota_us=50000 mygroup
cgset -r cpu.cfs_period_us=100000 mygroup
cgexec -g cpu:mygroup ./app
✅ 精确
❌ 配置复杂
docker run --cpus=1.5 nginx
| 场景 | 方法 |
|---|---|
| 临时压一下进程 | cpulimit |
| 系统服务 | systemd CPUQuota |
| 多进程隔离 | taskset |
| 精准控制 | cgroups |
| 容器 | Docker --cpus |
如果你愿意,可以告诉我:
我可以直接给你可复制的命令。