当前位置:   article > 正文

Linux性能统计工具_内存统计工具

内存统计工具

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

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

通过条件控制

  1. #!/bin/bash
  2. k=$1
  3. if [ -z $k ]
  4. then
  5. echo "need a PID or process name as a argument!"
  6. else
  7. count=`ps -ef | grep -c $k`
  8. #echo "进程数为:$count"
  9. if [ $count -lt 4 ]
  10. then
  11. echo "the PID or processs name $k is not exist!!"
  12. else
  13. 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}'
  14. fi
  15. fi

或者结合函数调用: 

  1. 1 #!/bin/bash
  2. 2 function cpu_mem(){
  3. 3 local proc=$1
  4. 4 local duration=$2
  5. 5 #判断是否有参数,没有就提醒追加pid或者进程名
  6. 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. 7 #判断参数中是否带了监控时长,如果没有带监控时长参数,则使用系统默认时长10s
  8. 8 [ -z $duration ] && duration=10
  9. 9 echo "统计进程:$proc,监控时长:$duration秒!"
  10. 10
  11. 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. 12
  13. 13 }
  14. 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脚本中的缩进空格一定要严格查看,不然很难发现报错信息...

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/770121
推荐阅读
相关标签
  

闽ICP备14008679号