如何使用shell獲取進程名的內存以及CPU利用率
2022-04-17 18:52:16 來源:易采站長站 作者:
目錄
原理:在ubuntu18.04和centos7.9測試:使用方法:總結原理:
1)使用ps得到進程名的所有進程pid
ps -C process_name -o pid=
2) 使用 /proc/$pid/status獲得內存的占用,并循環求和;
3)使用top獲取相關pid的cpu列表,并過濾第10列,求和。
在ubuntu18.04和centos7.9測試:
# !/bin/bash # author:robin # usage: bash proc.sh openresty if [ -e cpu_mr.log ] then rm -f cpu_mr.log fi pid_array=(122) name=$1 if [ -z "$name" ] then name="openresty" fi #echo $name #cpucmd: '-p 125 -p 235 -p 568' cpucmd='' i=0 #get all pid by proName funGetPids(){ tempstr=`ps -C $name -o pid=` #echo $tempstr for line in $tempstr do pid_array[$i]=$line #echo ${pid_array[$i]} let "i++" cpucmd=${cpucmd}" -p $line " done return } funGetPids if [ $i -eq 0 ] then echo "{\"sum_vmrss\": -1, \"sum_cpu\": -1 }" exit 0 fi sum_vmrss=0 sum_cpu=0.0 #compute mem sum for pid in ${pid_array[@]} do vmrss_temp=`cat /proc/$pid/status|grep -e VmRSS|tr -d [:blank:][:alpha:][:]` #echo 'vmrss_temp= ' $vmrss_temp sum_vmrss=`expr $sum_vmrss + $vmrss_temp` done #echo $cpucmd tempstr=`top -n 1 $cpucmd |tail -n +8 | awk '{print $10}'` for line in $tempstr do #echo $line sum_cpu=$(echo "$sum_cpu+$line"|bc) done # echo "-------------------" echo "{\"sum_vmrss\": $sum_vmrss, \"sum_cpu\": $sum_cpu }" exit
使用方法:
bash proc.sh gnome-shell
輸出json:
{"sum_vmrss": 423712, "sum_cpu": 6.7 }
總結
到此這篇關于如何使用shell獲取進程名的內存以及CPU利用率的文章就介紹到這了,更多相關shell獲取進程名內存內容請搜索易采站長站以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持易采站長站!
如有侵權,請聯系QQ:279390809 電話:15144810328
最新圖文推薦
相關文章
-
bilibili會員最新賬號 最新嗶哩嗶哩VIP會員賬號如何共享?
嗶哩嗶哩是一款十分全面的視頻播放軟件,在這里,擁有一大批忠實用戶,無論在什么時候都會有很多的粉絲幫助你找視頻,是一款十分有愛的視頻軟件,而人多了之后就會遇到很多的2019-11-25
-
騰訊視頻vip月卡怎么兌換?騰訊視頻vip月卡兌換的兩種方法介紹
騰訊視頻vip月卡怎么用?騰訊視頻是一款非常不錯的視頻軟件,里面有著很多熱門的電影和電視劇,但是大部分都是需要VIP才能觀看,那么,如何兌換騰訊視頻的VIP月卡呢?下面小編就2019-11-26