如何在CentOS 7上安装和使用cpullimit

・4 分钟阅读

CPULimit是一个Linux实用程序,用于限制应用程序使用的资源。

尽管如此,cpullimit可能不适用于所有应用程序,因为它本质上是每隔一段时间启动/停止进程以降低CPU使用率,然后以平均值表示,这将在下一节中解释。

它是如何工作的?

CPULimit不适用于使用作业控制的应用程序;当CPULimit发送停止(SIGSTOP )信号时,它们可能被杀死,本质上,应用程序将快速被打开/关闭,以便将程序限制到所需的周期次数。

不过不要担心-大多数应用程序都会工作,可以限制的应用程序包括PHP,Java和Nginx。

前提条件

要成功安装CPULimit,你需要:

  • 运行CentOS 7的服务器(仅限64位系统
  • makescreenwget
  • root访问或sudo权限,

安装CPULimit

首先,你需要下载CPULimit,并且提取tarball :


cd ~
wget https://astuteinternet.dl.sourceforge.net/project/limitcpu/limitcpu/cpulimit-2.5.tar.gz
tar -xvf cpulimit-2.5.tar.gz

解压缩完成后,我们可以输入新创建的目录,并且开始编译CPULimit :

 
cd cpulimit-2.5

 

现在,运行make开始将CPULimit编译为二进制文件:

 
make

 

这个进程完成后,你将在cpulimit-2.5目录中有一个二进制文件,为了使它可用,我们需要执行下面的命令:

 
make install

 

可能需要一些时间才能完成。

使用应用程序配置CPULimit

为了使用CPULimit,我们需要知道进程ID ,这称为PID ,通过使用top,我们可以看到进程的列表:

 
top -c

 

你将看到一个进程列表,它应该如下所示:


Tasks: 130 total, 1 running, 129 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3881740 total, 191952 free, 413472 used, 3276316 buff/cache
KiB Swap: 4063228 total, 4062912 free, 316 used. 2881364 avail Mem

 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
 1336 plex 35 15 1368172 67464 6668 S 0.3 1.7 155:41.58 Plex Plug-in [com.plexapp.system] /usr/lib/plexmediaserver/Resources/Plug-ins-995f1dead+
31345 root 20 0 326572 21844 12784 S 0.3 0.6 86:45.32 docker-containerd --config /var/run/docker/containerd/containerd.toml
 1 root 20 0 193704 6744 4088 S 0.0 0.2 6:49.22 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
 2 root 20 0 0 0 0 S 0.0 0.0 0:01.45 [kthreadd]
 3 root 20 0 0 0 0 S 0.0 0.0 0:12.77 [ksoftirqd/0]
 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/0:0H]
 7 root rt 0 0 0 0 S 0.0 0.0 0:13.95 [migration/0]

例如,如果要限制plex,我们需要注意PID ,在这种情况下,它是1336 ,如果要限制plex到15%的CPU,我们需要创建一个screen,并且执行cpulimit


screen -S limitcpu
cpulimit -p 1336 -l 15

要退出screen,请使用以下组合: CTRL +A+D,要在退出后进入screen,只需执行以下操作:

 
screen -r limitcpu

 

运行cpulimit的一般格式如下:


cpulimit -p (PROCESS PID) -l (CPU %)

注意:PROCESS PID是进程ID,CPU %是CPU限制。

卸载CPULimit

删除CPULimit很简单,执行以下命令:


cd ~/cpulimit-2.5
make deinstall

Anne655 profile image