统计某个进程的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'}
文章插图
文章插图
#使用awk 截取第九个 cpu展示的 字段
【Linux 统计某个进程的cpu和mem的增长情况】上面的grep信息不是实时统计的,想要获取即时的信息,就需要使用grep --line-buffered,使grep不缓存信息,直接输出:
文章插图
文章插图
取出相应pid
文章插图
利用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系统 JDK的多种安装方式与多版本管理工具
- Linux 进阶语句
- 生成 Linux 运行时间报告的 Bash 脚本
- Linux分段系统中的地址映射和基本机制
- Linux日志系统
- 后端开发程序员CentOS7 linux下常用的shell命令
- Linux 系统管理员的 10 份速查表 | Linux 中国
- linux进程间通信——深入理解linux信号量
- 查看 Linux 系统服务的 5 大方法
- Linux操作系统:地址空间与重定位