linux中限制CPU和記憶體佔用率方法

來源:互聯網
上載者:User

   查看cpu佔用

  在命令列中輸入 “top”

  即可啟動 top

  top 的全屏交談模式可分為3部分:系統資訊欄、命令輸入欄、進程列表欄。

  使用top查看系統負荷

  top命令可以動態監視系統負荷,包括CPU、記憶體的使用率和佔用資源較多的進程詳情等。

  動態查看系統負荷(佔用一個終端)

  top

  顯示後退出

  top -n 1

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

  top -b

  好了,我們現在來看限制CPU和記憶體佔用率方法

  指令碼內容:

 代碼如下  

#!/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

  我對上面的指令碼進行了修改,可以讓其針對整個伺服器的進程進行限制.

  修改後的指令碼:

 代碼如下  

#!/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中運行,讓其每分鐘檢查一次:

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

  ps:

  n : 更新的次數,完成後將會退出 top

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

  那麼top -bn 1 就是擷取一次,top的輸出結果。

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

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

  取得cpu使用率大於20%或者記憶體使用量率大於25%,且使用者uid大於500的進程pid。

相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。