经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Linux/Shell » 查看文章
如何使用shell获取进程名的内存以及CPU利用率
来源:jb51  时间:2022/4/18 10:11:03  对本文有异议

原理:

1)使用ps得到进程名的所有进程pid

  1. ps -C process_name -o pid=

2) 使用 /proc/$pid/status获得内存的占用,并循环求和;

3)使用top获取相关pid的cpu列表,并过滤第10列,求和。

在ubuntu18.04和centos7.9测试:

  1. # !/bin/bash
  2. # author:robin
  3. # usage: bash proc.sh openresty
  4. if [ -e cpu_mr.log ]
  5. then
  6. rm -f cpu_mr.log
  7. fi
  8. pid_array=(122)
  9. name=$1
  10. if [ -z "$name" ]
  11. then
  12. name="openresty"
  13. fi
  14. #echo $name
  15. #cpucmd: '-p 125 -p 235 -p 568'
  16. cpucmd=''
  17. i=0
  18. #get all pid by proName
  19. funGetPids(){
  20. tempstr=`ps -C $name -o pid=`
  21. #echo $tempstr
  22. for line in $tempstr
  23. do
  24. pid_array[$i]=$line
  25. #echo ${pid_array[$i]}
  26. let "i++"
  27. cpucmd=${cpucmd}" -p $line "
  28. done
  29. return
  30. }
  31. funGetPids
  32. if [ $i -eq 0 ]
  33. then
  34. echo "{\"sum_vmrss\": -1, \"sum_cpu\": -1 }"
  35. exit 0
  36. fi
  37. sum_vmrss=0
  38. sum_cpu=0.0
  39. #compute mem sum
  40. for pid in ${pid_array[@]}
  41. do
  42. vmrss_temp=`cat /proc/$pid/status|grep -e VmRSS|tr -d [:blank:][:alpha:][:]`
  43. #echo 'vmrss_temp= ' $vmrss_temp
  44. sum_vmrss=`expr $sum_vmrss + $vmrss_temp`
  45. done
  46. #echo $cpucmd
  47. tempstr=`top -n 1 $cpucmd |tail -n +8 | awk '{print $10}'`
  48. for line in $tempstr
  49. do
  50. #echo $line
  51. sum_cpu=$(echo "$sum_cpu+$line"|bc)
  52. done
  53. # echo "-------------------"
  54. echo "{\"sum_vmrss\": $sum_vmrss, \"sum_cpu\": $sum_cpu }"
  55. exit

使用方法:

  1. bash proc.sh gnome-shell

输出json:

{"sum_vmrss": 423712,  "sum_cpu": 6.7 }

总结

到此这篇关于如何使用shell获取进程名的内存以及CPU利用率的文章就介绍到这了,更多相关shell获取进程名内存内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号