<返回更多

Linux 统计某个进程的cpu和mem的增长情况

2020-08-09    
加入收藏

统计某个进程的cpu和mem的增长情况

Linux 统计某个进程的cpu和mem的增长情况

·

使用top命令:

#top的用法
top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
#将进程以1s每次,更新3次,-b输出
top -d 1 -n 3 -b | grep -i redis-server
#使用awk 截取第九个 cpu展示的 字段
 top -d 1 -n 4 -b | grep -i redis-server | awk {'print $9'}
Linux 统计某个进程的cpu和mem的增长情况

 


Linux 统计某个进程的cpu和mem的增长情况

#使用awk 截取第九个 cpu展示的 字段

上面的grep信息不是实时统计的,想要获取即时的信息,就需要使用grep --line-buffered,使grep不缓存信息,直接输出:

Linux 统计某个进程的cpu和mem的增长情况

 


Linux 统计某个进程的cpu和mem的增长情况

取出相应pid


Linux 统计某个进程的cpu和mem的增长情况

利用awk分割取出pid,cpu ,内存,服务名

perf_get(){
#定义变量
	local proc="$1"     # pid 进程名
	local recount="$2"  # 查询几秒内进程情况
	
	#判断
	[ -z "$proc"] && { echo "请输入进程"; return 1 ;}
	[ -z "$recount"] $$ recount=10 #10s内无响应 退出
	
	#使用top进行批处理
	top -d 1 -n $recount -b |
	#设置查询范围
	grep '^[0-9][0-9]' |
	#awk 截取 pid cpu 内存 服务名
	awk 'print $1,$9,$10,$NF}' |
	#实时取出数据,
	grep --line-buffered -i "$proc" |
	#分组统计打印。tab作为OFS进行输出
	awk 'BEGIN{OFS="t";print "CPU","MEM"}'  #输出表头
	{cpu+=$2;mem+=$3;print $1,$2,$3,$4;} #统计所有cpu 和内存的合计
	END{print "";print "avg:  ",cpu/NR,mem/NR} 
}
Linux 统计某个进程的cpu和mem的增长情况

统计 结果

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>