shell指令碼獲取CPU使用率

2021-07-02 17:19:42 字數 2250 閱讀 4887

#########################################

#思路:通過/proc/stat獲取cpu使用資訊,根據cpu使用數值計算:

#user   - cpu 花在使用者模式的時間,即執行應用程式花費的時間

#nice   - cpu 花在 nice 值大於一般值 0 (即有較低優先順序別) 程序的時間。

#system - cpu 花在系統模式即在核心空間 (kernel space) 的時間,即在執行核心工作的時間

#idle   - cpu 閒置的時間,其值一定為 /proc/uptime 中第二個專案乘 user_hz

#iowait - cpu 花在等候輸入/輸出的時間,linux 2.5.41 開始才開始支援

#irq    - cpu 花在處理硬體中斷 (hardware interrupt) 的時間,linux 2.6.0-test4 開始支援

#softirq- cpu 花在處理 softirq 軟體中斷的時間,linux 2.6.0-test4 開始支援

#steal_time  - 在虛擬環境下 cpu 花在處理其他作業系統的時間,linux 2.6.11 開始支援(虛擬環境下出現,本例中無此項)

#guest  - 在 linux 核心控制下 cpu 為 guest 作業系統執行虛擬 cpu 的時間,linux 2.6.24 開始支援(虛擬環境下出現,本例中無此項)

#cpu使用率=(time2-time1)/(total2-total1)

##interval,獲取cpu 使用的時間間隔;

#########################################

showhelp()

get_cpu_rate()

;i++))

')start_idle[$i]=$(echo $ | awk '')

start_total[$i]=$(echo $ | awk '')

}#計算初始總cpu使用資料 

start=$(cat /proc/stat | grep "cpu " | awk '')

start_idle[$]=$(echo $ | awk '')

start_total[$]=$(echo $ | awk '')

#interval時間後

sleep $

#計算時間間隔後每個cpu使用資料,並根據資料計算出每個cpu使用率   

for((i=0;i<$;i++))

')end_idle=$(echo $ | awk '')

end_total=$(echo $ | awk '')

idle=`expr $ - $`

total=`expr $ - $`

cpu_usage=`expr $ \* 100 / $`

cpu_rate[$i]=`expr 100 - $`

# echo cpu$i:$

}#計算時間間隔後總cpu使用資料,並根據資料計算出計算機所有cpu的總體使用率  

end=$(cat /proc/stat | grep "cpu " | awk '')

end_idle=$(echo $ | awk '')

end_total=$(echo $ | awk '')

idle=`expr $ - $`

total=`expr $ - $`

cpu_usage=`expr  $ \* 100 / $`

cpu_rate[$]=`expr 100 - $`

# echo "$]}" #返回總體使用率

while [ $1 ]; do

case $1 in

'-a'  )

for((i=0;i<$;i++))"}

exit

;;*[0-9]* )

echo "cpu$1:$"

exit

;;'-t' )

echo "total cpu rate:$]}"

exit

;;* )

showhelp

exit

;;esac

shift

done   

}while true; do 

#echo $(get_cpu_rate)

#read var <<< $(get_cpu_rate)

# echo "cpu rate:" $var

read var <<< $(get_cpu_rate -t)

echo $var

done

如何獲取CPU使用率

這幾天做乙個分布式的軟體,用到了這些知識,暫時沒有時間具體介紹自己的收穫和心得,先把 載加修改 貼上吧,以後再補充。一 獲取當前程序的cpu使用率 記憶體使用量 總的io位元組數。processstatus.h ifndef process status h define process statu...

獲取系統CPU 使用率

來看一下 filetime的結構 typedef struct filetime filetime,pfiletime,lpfiletime 這個結構是64位的。ok,上個我除錯的截圖來證明一下,為什麼出錯 eax 是32的,shl eax,20h 也是還是他自己。沒有任何改變 注意到 int64 ...

Android 獲取cpu使用率

方法一 adb shell top m 3 n 1 m 最大程序數 n 迭代次數 如果不跟 n 終端會一直卡在那,3秒重新整理一次 800 就是總共的cpu,idle那是空閒的,那總的前去空閒的然後除以總共的,就是使用率。方法二 獲取每乙個cpu的使用率 cpu的使用率的計算方法 1 取樣兩個足夠短...