Linux云服务器利用 CPULimit 限制进程控制CPU使用量

麦子
麦子
管理员
1290
文章
0
粉丝
运维技术10字数 620阅读2分4秒阅读模式

我们在使用Linux云服务器的时候,是不是会因为云服务器配置限制问题,导致CPU占用资源导致服务器应用程序崩溃。在这里,我们可以利用 CPULimit 用来按百分比限制进程的 CPU 占用,限制的是实际使用率。它不改 nice 或调度优先级,而是根据系统负载动态调节:进程超限时发 SIGSTOP 暂停,降下来再 SIGCONT 恢复。指定进程下的子进程和线程共用同一上限。跑批处理、编译、备份等不想把机器打满时,用它把 CPU 压在固定比例以内比较直接。

先确定要限制的进程 PID(或按进程名匹配),再设目标百分比,例如只允许用 50% CPU。CPULimit 会在后台盯着该进程,超了就停、没超就继续,无需改应用本身。下面会结合具体命令和参数,说明怎么安装、怎么对单个或多个进程设限,以及常见注意点(如权限、子进程是否一并受限等)。

一、安装 cpulimit

Debian / Ubuntu

sudo apt update
sudo apt install -y cpulimit

CentOS / RHEL / AlmaLinux

需先启用 EPEL 源:

sudo yum install -y epel-release
sudo yum install -y cpulimit
# 或 CentOS 8+/Fedora:
# sudo dnf install -y cpulimit

验证安装:

cpulimit -h

二、基本用法与常用命令

cpulimit 通过向进程发送 SIGSTOP/SIGCONT信号来暂停/恢复进程,从而限制其 CPU 占用。注意:停止 cpulimit 后,进程会恢复无限制使用 CPU。

先查目标进程 PID

ps aux | grep 进程名
# 或
top

按 PID 限制(推荐,精确)

限制 PID 12345 的进程最多用 50% 的单核 CPU:

sudo cpulimit -p 12345 -l 50

按进程名限制

限制名为 ffmpeg的进程最多用 40% CPU(只匹配第一个找到的同名进程):

sudo cpulimit -e ffmpeg -l 40

按绝对路径限制(避免同名混淆)

sudo cpulimit -P /usr/bin/python3 -l 30

启动程序时直接加限制

sudo cpulimit -l 50 -- python3 my_script.py

后台运行(不占用终端)

sudo cpulimit -p 12345 -l 50 -b

 三、参数说明

参数 说明
-p N 指定目标进程 PID
-e NAME 按可执行文件名匹配
-P PATH 按绝对路径匹配
-l N CPU 使用率上限(单核 1~100,多核可 >100,如 200 = 2 个核心满占)
-b / --background 后台运行
-z / --lazy 目标进程退出后 cpulimit 自动退出
-m / --monitor-forks 同时限制子进程
-k / --kill 超限时直接杀掉进程(而非节流)
-v 显示详细调控信息
投上你的一票
 
  • 本文由 麦子 发表于2026年6月30日 15:12:17
  • 转载请务必保留本文链接:https://www.zhujipingjia.com/cpulimit-2.html