Linux VPS經過安裝CPULimit來限制CPU使用率

說明:咱們手上常常有不少廉價的VPS,有時候使用某些軟件應用的時候,會出現CPU跑滿的狀況,而長時間跑滿會被VPS商家停掉,因此這裏咱們須要想辦法來限制進程CPU使用率,這裏就說個教程。nginx

簡介

cpulimit命令的工做原理是爲進程預設一個cpu佔用率上限,並實時監控進程是否超出此上限,而作出動態調整。從而能夠控制進程的cpu使用率的上限值。ubuntu

 

安裝

使用root運行命令:bash

#debian/ubuntu系統
apt install -y cpulimit

#RHEL/Centos/Fedora系統
yum install epel-release cpulimit
 

使用

cpulimit -h
Usage: cpulimit [OPTIONS...] TARGET
   OPTIONS
      -l, --limit=N          percentage of cpu allowed from 0 to 100 (required)//cpu限制的百分比
      -v, --verbose          show control statistics//顯示版本號
      -z, --lazy             exit if there is no target process, or if it dies//若是限制的進程不存在了,則退出。
      -i, --include-children limit also the children processes//包括子進程。
      -h, --help             display this help and exit //幫助,顯示參數
   TARGET must be exactly one of these:
      -p, --pid=N            pid of the process (implies -z) //進程的pid
      -e, --exe=FILE         name of the executable program file or path name //可執行程序
      COMMAND [ARGS]         run this command and limit it (implies -z)

 

 

用法

一、常規用法服務器

#限制firefox使用30% cpu利用率
cpulimit -e firefox -l 30

#限制進程號1313的程序使用30%cpu利用率
cpulimit -p 1313 -l 30

#限制絕對路徑下該軟件的cpu利用率
cpulimit -e /usr/local/nginx/sbin/nginx -l 50

 

二、限制全部進程的CPU使用率
默認狀況下cpulimit只能對已經存在的進程進行限制,可是設置此腳本爲隨機自啓動便可,它會對全部進程(包括新建進程)進行監控並限制(3秒檢測一次,CPU限制爲75%ui

這就能夠防止由於CPU使用率太高而被ban了!this

#!/bin/bash 

while true ; do

  id=`ps -ef | grep cpulimit | grep -v "grep" | awk '{print $10}' | tail -1`

  nid=`ps aux | awk '{ if ( $3 > 75 ) print $2 }' | head -1`

  if [ "${nid}" != "" ] && [ "${nid}" != "${id}" ] ; then

    cpulimit -p ${nid} -l 75 &

    echo "[`date`] CpuLimiter run for ${nid} `ps -ef | grep ${nid} | awk '{print $8}' | head -1`" >> /root/cpulimit-log.log

  fi

  sleep 3

done

 

保存到 /root/cpulimit.sh,會自動生成日誌文件 /root/cpulimit-log.logspa

而後修改 /etc/rc.local 在對應位置加入 /root/cpulimit.sh 再重啓系統,就會全程限制各個進程的CPU使用了!firefox

 

注意事項

l、後面限制的cpu使用量,要根據實際的核心數量而成倍減小。40%的限制生效在1核服務器中,若是是雙核服務器,則應該限制到20%,四核服務器限制到10%以此類推。
2、root用戶能夠限制全部的進程,普通用戶只能限制本身有權限管理的進程。
相關文章
相關標籤/搜索