檢測進程 CPU 利用率
在對應用服務進行維護時,我們經常遇到由於 CPU 過高導致業務阻塞,造成業務中斷的情況。CPU 過高可能由於業務量過負荷或者出現死循環等異常情況,通過腳本對業務進程 CPU 進行時時監控,可以在 CPU 利用率異常時及時通知維護人員,便於維護人員及時分析,定位,以及避免業務中斷。
下面的函數可獲得指定進程 ID 的進程 CPU 利用率。它有一個參數為進程 ID,它首先使用 ps 查找進程信息,同時通過「grep -v」過濾掉「%CPU」行,最後通過 awk 查找 CPU 利用百分比的整數部分(如果系統中有多個 CPU,CPU 利用率可以超過 100%)。
function GetCpu
{
CpuValue=`ps -p $1 -o pcpu |grep -v CPU | awk '{print $1}' | awk - F. '{print $1}'`
echo $CpuValue
}
下面的功能是通過上面的函數 GetCpu 獲得此進程的 CPU 利用率,然後通過條件語句判斷 CPU 利用率是否超過限制,如果超過 80%(可以根據實際情況進行調整),則輸出告警,否則輸出正常信息。
function CheckCpu
{
PID=$1
cpu=`GetCpu $PID`
if [ $cpu -gt 80 ]
then
{
echo 「The usage of cpu is larger than 80%」
}
else
{
echo 「The usage of cpu is normal」
}
fi
}
示例演示:
1)源程序(假設上面已經查詢出 TestApp 的進程 ID 為 11426)
CheckCpu 11426
2)結果輸出
The usage of cpu is 75
The usage of cpu is normal
[dyu@xilinuxbldsrv shell]$
3)結果分析
從上面的輸出可見:TestApp 程序當前的 CPU 使用為 75%,是正常的,沒有超過 80% 的告警限制。
作為 IT 運維工程師,對單個進程CPU利用率設置監控告警可以在一定程度上降低系統異常,保障業務穩定的運行。試想,如果擁有一個能夠監控全局,實現業務告警風險提醒的運維協作工具呢?定能極大提升工作效率,加強團隊運維保障能力!
「王教授」幫助您更好地了解您在公有雲上的所有資產狀況(資產統計、健康狀況診斷、監控數據匯聚、費用優化建議等),提前發現系統問題,減小了運維事故的發生。
用了王教授!晚上不「肝」白天干!
神仙運維生活,一招即獲~歡迎點擊文末王教授二維碼查看詳情!
(也可訪問工具地址:https://prof.wang)
網站崩潰找不到原因?平台搭建無從下手?熱門技術不想落伍?想要變強找不到資料?
加入[IT拯救聯盟],讓大牛和同伴拯救你,帶你裝x帶你飛。定期乾貨分享、大牛專業解答、實用IT工具優選.....
私信小編「聯盟」,即可加入我們~