#########################################
#思路:通過/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 取樣兩個足夠短...