在開(kāi)發(fā)CFS過(guò)程中需要對(duì)機(jī)器實(shí)時(shí)的內(nèi)存,CPU,硬盤使用率進(jìn)行監(jiān)控,因?yàn)镃FS跑在Linux機(jī)器上,可以利用Linux中一些相應(yīng)虛擬文件進(jìn)行內(nèi)存CPU使用率的計(jì)算,于是編寫了以下腳本,很簡(jiǎn)單,但是很實(shí)用。
#!/bin/sh
#count cpu_used_rate,memory_used_rate,disk_used_rate
#@Jayson 2012-5
#disk_used_rate
#Depend on real storage place the parameter 'Location' need to alter.
#本人文件主要存儲(chǔ)于sda8分區(qū),所以以此提取。
Location=/dev/sda8
Disk_Used_Rate=$(df -h | grep $Location | awk '{print $5}')
echo $Disk_Used_Rate
#memory_used_rate
LoadMemory=$(cat /proc/meminfo | awk '{print $2}')
Total=$(echo $LoadMemory | awk '{print $1}')
Free1=$(echo $LoadMemory | awk '{print $2}')
Free2=$(echo $LoadMemory | awk '{print $3}')
Free3=$(echo $LoadMemory | awk '{print $4}')
Used=`expr $Total - $Free1 - $Free2 - $Free3`
Used_Rate=`expr $Used/$Total*100 | bc -l`
Memory_Used_Rate=`expr $Used_Rate/1 | bc`
echo $Memory_Used_Rate%
#cpu_used_rate
Log1=$(cat /proc/stat | grep 'cpu ' | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8}')
Sys1=$(echo $Log1 | awk '{print $4}')
Total1=$(echo $Log1 | awk '{print $1+$2+$3+$4+$5+$6+$7}')
sleep 0.5
Log2=$(cat /proc/stat | grep 'cpu ' | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8}')
Sys2=$(echo $Log2 | awk '{print $4}')
Total2=$(echo $Log2 | awk '{print $1+$2+$3+$4+$5+$6+$7}')
Sys=`expr $Sys2 - $Sys1`