温馨提示×

怎么限制进程cpu使用

小樊
49
2026-10-03 14:00:47
栏目: 编程语言

限制进程的 CPU 使用率,常见做法有操作系统级限制和程序内控制两类,下面按使用场景给你总结。


一、Linux 下限制进程 CPU(最常用)

1. cpulimit(最简单,按百分比限制)

cpulimit -p 1234 -l 30
  • -p:进程 PID
  • -l:限制为 CPU 的 30%
  • 可配合 --exe 使用

✅ 适合临时限速
❌ 进程重启后失效


2. nice / renice(降低优先级)

nice -n 19 ./program
renice -n 19 -p 1234
  • 不影响峰值,只影响“抢不到 CPU 时”
  • 适合后台任务

3. cgroups(最正统、可持久)

cgcreate -g cpu:/mygroup
echo 30000 > /sys/fs/cgroup/cpu/mygroup/cpu.cfs_quota_us
echo 100000 > /sys/fs/cgroup/cpu/mygroup/cpu.cfs_period_us
cgclassify -g cpu:/mygroup 1234
  • 限制为 30% CPU
  • 容器、服务常用(Docker / systemd)

4. systemd 服务限制

[Service]
CPUQuota=30%
systemctl daemon-reload
systemctl restart myservice

✅ 生产推荐


二、Windows 下限制 CPU

1. 任务管理器(不精准)

  • 右键进程 → 设置相关性(CPU 核心)
  • 只能限制“用几个核”

2. Windows Job Objects(程序级)

  • 通过 API 限制 CPU 时间
  • 第三方工具如 Process Governor

三、容器 / Docker 限制

docker run --cpus="0.5" myimage

或

docker run --cpu-quota=50000 --cpu-period=100000 myimage

四、程序自身控制(开发级)

  • 定时 sleep
  • 限制线程数
  • 使用协程 / 限流算法

五、怎么选?

场景 推荐
临时限速 cpulimit
系统服务 systemd / cgroup
容器 Docker CPU 限制
开发控制 代码限流

如果你告诉我系统(Linux/Windows)、是否是服务、是否容器,我可以给你更精确命令。

0 踩