查看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.shps:
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。