如何用shell程序得到系统当前的cpu使用率?

发布于 2022-07-27 03:44:14 字数 146 浏览 50 评论 7

如题,请教。

我发现用vmstat时,有一个问题,就是第一行vmstat返回的值是不准确的,举例来说,我的系统目前的cpu利用率是100%,但是使用vmstat 5时,第一行显示的结果cpu利用率是0,而第二行以后结果就是正确的了。

谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

一个人练习一个人 2022-07-28 01:06:23

/proc目路下的内存文件系统映射了系统的运行时的一些信息,包括进程列表,
内存信息,CPU使用情况,还有网络等等
所以可以通过读/proc下的文件来实现统计信息的获取
但是,要注意的时不同的版本,将/proc下的每个文件中的类容会有一些差别,每一个项代表什么要自己分析,最好根据top的输出去分析
然后就可以通过shell教本或者C取得CPU使用率
比如:
我的机子是AS4(Kernel 2.6.9-5)
cat /proc/stat
cpu  1047871 11079 394341 1157538880 4909104 1945 61338
cpu0 352894 2950 157917 290318045 109839 0 49564
cpu1 234860 1978 115148 288108962 2522748 1028 6391
cpu2 106253 1674 52273 288601985 2225180 909 2839
cpu3 353863 4477 69001 290509888 51337 6 2543
intr 3021292348 2939335896 720 0 12 12 0 7 2 1 0 0 0 1951 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7217173 0 0 0 0 0 0 0 30 0 0 0 0 0 0 0 74736544 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 379682110
btime 1158715143
processes 603543
procs_running 1
procs_blocked 0
然后就可以自己计算了

  1. #########GetCPU.sh
  2. ######Author:duanjigang
  3. #!/bin/sh
  4. while true
  5. do
  6. awk  '$1=="cpu"{Total=$2+$3+$4+$5+$6+$7;print "Free: " $5/Total*100"%
  7. " " Used: " (Total-$5)*100/Total"%"}' </proc/stat
  8. sleep 1
  9. done

复制代码
#./GetCPU.sh
Free: 99.4532% Used: 0.546814%
Free: 99.4532% Used: 0.546813%
Free: 99.4532% Used: 0.546813%
Free: 99.4532% Used: 0.546813%
这样应该可以的

拔了角的鹿 2022-07-28 01:05:44

谢谢!

问题是,我定时取cpu的利用率,如果按照你的方式,就无法准确定时。

若有似无的小暗淡 2022-07-28 01:01:36

可以用应用程序“sed”来删去第一行数据:

  1. 不用“sed”:
  2. [~/src/db_campus]$ vmstat 1 11
  3. procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
  4. r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
  5. 0  0      0  10888 287040  54744    0    0    34    12 1017    45  1  1 96  2
  6. 0  0      0  10888 287040  54744    0    0     0     0 1024    39  1  0 99  0
  7. 0  0      0  10888 287040  54744    0    0     0     0 1004    23  0  0 100  0
  8. 1  0      0   8776 287056  54744    0    0     0    32 1028    73 21  3 76  0
  9. 0  0      0  10756 287084  54744    0    0     0    76 1011    48 62  4 33  1
  10. 0  0      0  10756 287100  54744    0    0     0   192 1026    52  1  0 99  0
  11. 0  0      0  10756 287100  54744    0    0     0     0 1004    23  0  0 100  0
  12. 0  0      0  10756 287100  54744    0    0     0     0 1022    42  0  0 100  0
  13. 0  0      0  10756 287100  54744    0    0     0     0 1004    17  0  0 100  0
  14. 0  0      0  10756 287100  54744    0    0     0    48 1029    42  0  0 100  0
  15. 0  0      0  10756 287100  54744    0    0     0     0 1004    19  0  0 100  0
  16. [~/src/db_campus]$
  17. 用“sed”:
  18. [~/src/db_campus]$ vmstat 1 11 | sed 3d
  19. procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
  20. r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
  21.   0  0      0  10888 287040  54744    0    0     0     0 1024    39  1  0 99  0
  22. 0  0      0  10888 287040  54744    0    0     0     0 1004    23  0  0 100  0
  23. 1  0      0   8776 287056  54744    0    0     0    32 1028    73 21  3 76  0
  24. 0  0      0  10756 287084  54744    0    0     0    76 1011    48 62  4 33  1
  25. 0  0      0  10756 287100  54744    0    0     0   192 1026    52  1  0 99  0
  26. 0  0      0  10756 287100  54744    0    0     0     0 1004    23  0  0 100  0
  27. 0  0      0  10756 287100  54744    0    0     0     0 1022    42  0  0 100  0
  28. 0  0      0  10756 287100  54744    0    0     0     0 1004    17  0  0 100  0
  29. 0  0      0  10756 287100  54744    0    0     0    48 1029    42  0  0 100  0
  30. 0  0      0  10756 287100  54744    0    0     0     0 1004    19  0  0 100  0
  31. [~/src/db_campus]$

复制代码

云雾 2022-07-28 00:40:19

用sar

蓝眼泪 2022-07-28 00:30:19

man top

top -n number

原帖由 guotie 于 2006-10-18 11:00 发表
top是在线看的方式,我希望在程序中获取。

谈情不如逗狗 2022-07-27 22:40:39

top是在线看的方式,我希望在程序中获取。

昔日梦未散 2022-07-27 14:20:22

top

不知道 适不适合你~--~

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文