技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費(fèi)軟件下載基地!

當(dāng)前位置:主頁 > 教程 > 服務(wù)器類 >

linux中限制CPU和內(nèi)存占用率方法

來源:技術(shù)員聯(lián)盟┆發(fā)布時間:2018-10-11 12:03┆點(diǎn)擊:

  查看cpu占用

  在命令行中輸入 “top”

  即可啟動 top

  top 的全屏對話模式可分為3部分:系統(tǒng)信息欄、命令輸入欄、進(jìn)程列表欄。

  使用top查看系統(tǒng)負(fù)荷

  top命令可以動態(tài)監(jiān)視系統(tǒng)負(fù)荷,包括CPU、內(nèi)存的使用率和占用資源較多的進(jìn)程詳情等。

  動態(tài)查看系統(tǒng)負(fù)荷(占用一個終端)

  top

  顯示后退出

  top -n 1

  以文本方式輸出,以備其它程序使用

  top -b

  好了,我們現(xiàn)在來看限制CPU和內(nèi)存占用率方法

  腳本內(nèi)容:

 代碼如下      

#!/bin/sh
UPID=`top -bn 1 | grep "^ *[1-9]" | awk '{ if($9 > 20 || $10 > 25 && id -u $2 > 500) print $1}'`
for PID in $UPID
do
renice +10 $PID
echo "renice +10 $PID"
done

 

  我對上面的腳本進(jìn)行了修改,可以讓其針對整個服務(wù)器的進(jìn)程進(jìn)行限制.

  修改后的腳本:

 代碼如下      

#!/bin/sh
UPID=`top -bn 1 | grep "^ *[1-9]" | awk '{ if($9 > 50 || $10 > 25 ) print $1}'`
for PID in $UPID
do
renice +10 $PID
echo "renice +10 $PID"
done

 

  可以將這個腳本放到cron中運(yùn)行,讓其每分鐘檢查一次:

 代碼如下      
chmod +x limit.sh
vi /etc/crontab
*/1 * * * * /bin/sh /root/soft_shell/limit.sh
 

  ps:

  n : 更新的次數(shù),完成后將會退出 top

  b : 批次檔模式,搭配 “n” 參數(shù)一起使用,可以用來將 top 的結(jié)果輸出到檔案內(nèi)

  那么top -bn 1 就是獲取一次,top的輸出結(jié)果。

  grep "^*[1-9]" : 是為了直接獲取PID號,排除掉表頭等信息。

  awk '{ if($9 > 20 || $10 > 25 && id -u $2 > 500) print $1}' :

  取得cpu使用率大于20%或者內(nèi)存使用率大于25%,且用戶uid大于500的進(jìn)程pid。