查看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)行,讓其每分鐘檢查一次:
代碼如下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。