Linux性能统计工具

有时候测试后端服务需要监控该服务消耗的系统资源,这个时候就需要自己开发工具来满足性能统计需求了:

以下demo以收集某个服务消耗的系统cpu和内存为示例:

通过条件控制

#!/bin/bash
k=$1
if [ -z $k ]
then
        echo "need  a PID or process name as a argument!"
else
        count=`ps -ef | grep -c $k`
        #echo "进程数为:$count"
        if [ $count -lt 4 ]
        then
                echo "the PID or processs name $k is not exist!!"
        else
                top -n 20 -d 1 -b | grep  --line-buffered $k | awk 'BEGIN{OFS="\t";print "%CPU","%MEM"} {print $9,$10} {CPU+=$9;MEM+=$10} END{print ".........."; print "   avg"; print CPU/NR,MEM/NR}'
        fi
fi

或者结合函数调用: 

  1 #!/bin/bash
  2 function cpu_mem(){
  3 local proc=$1
  4 local duration=$2
  5 #判断是否有参数,没有就提醒追加pid或者进程名
  6 [ -z $proc ] && { echo "need a PID or process name as a argument!!please append the argument after the runing-script command~~";return 1; }
  7 #判断参数中是否带了监控时长,如果没有带监控时长参数,则使用系统默认时长10s
  8 [ -z $duration ] && duration=10
  9 echo "统计进程:$proc,监控时长:$duration秒!"
 10 
 11 top -n $duration -d 1 -b | grep -i --line-buffered $proc | awk 'BEGIN{OFS="\t";print "%CPU","%MEM"} {print $9,$10} {CPU+=$9;MEM+=$10} END{print "...........";print "     avg";print CPU/NR,MEM/NR}'
 12 
 13 }
 14 cpu_mem $1 $2

利用smem工具统计进程消耗内存PSS:Index of /smem/download

for i in {1..10};do smem | grep 27843 | awk 'NR==2{print $0}'| awk 'BEGIN{print "内存消耗"} {print $7}';sleep 2;done

 踩过的坑:bash脚本中的缩进空格一定要严格查看,不然很难发现报错信息...

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chuntian_tester

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值