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

统计某个进程的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展示的 字段
【Linux 统计某个进程的cpu和mem的增长情况】上面的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的增长情况

文章插图
统计 结果




    推荐阅读