免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3569 | 回复: 13
打印 上一主题 下一主题

vmstat如何快速返回 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-08 17:22 |只看该作者 |倒序浏览
5可用积分
大家好,小弟在前台显示系统性能监控
每秒钟调用get_cpu_info.sh得到cpu的数据
get_cpu_info.sh就是使用vmstat 1 1|tail -1得到cpu的占用情况,但问题是vmstat 1 1必须要执行1秒才能返回,有没有什么办法可以让它快速返回啊?
vmstat不加参数的话好像是统计从系统启动以来的cpu占用情况,而不是我要的系统当前的情况。
有哪位大哥大姐有什么好的方法吗?

ps:不是root用户,所以不能使用sar

最佳答案

查看完整内容

还是不太明白你的需求。AIX上写了个例子,估计你就是要这个效果。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2009-12-08 17:22 |只看该作者
还是不太明白你的需求。AIX上写了个例子,估计你就是要这个效果。

  1. $ vmstat 1 10 |awk 'NR>6{print "us: "$(NF-3)" sy: "$(NF-2)" sum: "$(NF-3)+$(NF-2)}'
  2. us: 4 sy: 6 sum: 10
  3. us: 7 sy: 14 sum: 21
  4. us: 6 sy: 8 sum: 14
  5. us: 9 sy: 12 sum: 21
  6. us: 4 sy: 6 sum: 10
  7. us: 4 sy: 6 sum: 10
  8. us: 3 sy: 5 sum: 8
  9. us: 4 sy: 5 sum: 9
  10. us: 4 sy: 6 sum: 10
  11. us: 4 sy: 6 sum: 10
  12. $ vmstat 1 10

  13. System configuration: lcpu=4 mem=1904MB

  14. kthr    memory              page              faults        cpu   
  15. ----- ----------- ------------------------ ------------ -----------
  16. r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa
  17. 0  0 228091 34148   0   0   0   0    0   0 277 12842 793  4  6 90  0
  18. 0  0 228088 34151   0   0   0   0    0   0 279 12504 787  4  5 91  0
  19. 0  0 228093 34146   0   0   0   0    0   0 290 12826 771  4  6 90  0
  20. 0  0 228036 34203   0   0   0   0    0   0 291 12635 761  4  6 90  0
  21. 0  0 228089 34150   0   0   0   0    0   0 271 12391 754  4  5 91  0
  22. 0  0 228084 34155   0   0   0   0    0   0 281 12392 745  4  6 90  0
  23. 0  0 228079 34160   0   0   0   0    0   0 274 11620 707  4  5 91  0
  24. 1  0 228084 34155   0   0   0   0    0   0 282 12037 731  4  5 91  0
  25. 0  0 228075 34164   0   0   0   0    0   0 249 11467 719  4  5 91  0
  26. 2  0 228086 34153   0   0   0   0    0   0 285 10717 624  3  5 92  0
  27. $ uname -a
  28. AIX aix 3 5 00C97AC04C00 powerpc unknown AIX
  29. $
复制代码

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
3 [报告]
发表于 2009-12-08 17:24 |只看该作者
vmstat 1 0  ???

论坛徽章:
0
4 [报告]
发表于 2009-12-08 18:03 |只看该作者

回复 #1 huangbt_unix 的帖子

vmstat delay count
在delay的时间段内显示的是实时的

论坛徽章:
0
5 [报告]
发表于 2009-12-08 18:22 |只看该作者
delay is the delay between updates in seconds.  If no delay  is  speci-
       fied, only one report is printed with the average values since boot.

直接vmstat 什么都不加应该就可以了

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
6 [报告]
发表于 2009-12-08 18:45 |只看该作者
需求不合理,不可能实现。

论坛徽章:
0
7 [报告]
发表于 2009-12-08 19:44 |只看该作者
原帖由 ubuntuer 于 2009-12-8 18:22 发表
delay is the delay between updates in seconds.  If no delay  is  speci-
       fied, only one report is printed with the average values since boot.

直接vmstat 什么都不加应该就可以了

直接vmstat变成是统计从系统启动开始的cpu占用情况,而不是我要的,目前cpu占用情况啊

论坛徽章:
0
8 [报告]
发表于 2009-12-08 19:47 |只看该作者
晕,可以实现吧,如:
另外用一个shell
i_loop=1
while [ $i_loop -le 3600 ]
do
vmstat 1 1|tail -1 >>/tmp/tmp.log
done
然后在get_cpu_info.sh里直接取/tmp/tmp.log的最后一行就可以了。
但是这样的话变成要实时地写/tmp/tmp.log 总觉得有点不合理,大家有其它方法吗?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
9 [报告]
发表于 2009-12-08 20:18 |只看该作者
get_cpu_info.sh直接调用vmstat 还差不多

论坛徽章:
0
10 [报告]
发表于 2009-12-08 20:27 |只看该作者
原帖由 beginner-bj 于 2009-12-8 20:18 发表
get_cpu_info.sh直接调用vmstat 还差不多

get_cpu_info.sh直接调用vmstat 速度太慢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP