1. 程式人生 > >一個快速檢測系統CPU負載的小程式

一個快速檢測系統CPU負載的小程式

原理說明

在對伺服器進行維護時,有時也遇到由於系統 CPU(利用率)負載過高導致業務中斷的情況。伺服器上可能執行多個程序,檢視單個程序的 CPU 都是正常的,但是整個系統的 CPU 負載可能是異常的。通過指令碼對系統 CPU 負載進行時時監控,可以在異常時及時傳送告警,便於維護人員及時處理,預防事故發生。下面的函式可以檢測系統 CPU 使用情況 。使用 vmstat 取 5 次系統 CPU 的 idle 值,取平均值,然後通過與 100 取差得到當前 CPU 的實際佔用值。
vmstat(VirtualMeomoryStatistics,虛擬記憶體統計)是Linux中監控記憶體的常用工具,可對作業系統的虛擬記憶體、程序、CPU等的整體情況進行監視。該命令可以顯示關於系統各種資源之間相關效能的簡要資訊,這裡我主要用它來看CPU的一個負載情況。

[[email protected] ~]# cat cpuload.sh 
#!/bin/bash
#Author: Jaking
#Mail: [email protected]
#Date:2018/7/11
#Function:This script is to get the CPU load. function GetSysCPU { CpuIdle=`vmstat 1 5 |sed -n '3,$p' | awk '{x = x + $15} END {print x/5}' | awk -F. '{print $1}'` CpuNum=`echo "100-$CpuIdle" | bc` echo $CpuNum } cpu=`GetSysCPU` echo "The system CPU is $cpu" if [ $cpu -gt 80 ] then { echo "The usage of system CPU is larger than 80%" } else { echo "The usage of system CPU is normal" } fi [
[email protected]
~]# bash cpuload.sh The system CPU is 8 The usage of system CPU is normal

從上面的輸出可見:當前 Linux 伺服器系統 CPU 利用率為 8%,是正常的,沒有超過 80% 的告警限制。