免费注册 查看新帖 |

Chinaunix

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

perl如何获取linux系统下单个进程的CPU使用率 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-22 22:03 |只看该作者 |倒序浏览
谢谢!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2009-10-22 22:04 |只看该作者
转 Shell 版用 Shell 命令取吧。
Perl 做这个不擅长。

论坛徽章:
0
3 [报告]
发表于 2009-10-22 22:07 |只看该作者
原帖由 culoger 于 2009-10-22 22:03 发表
谢谢!


search下cpan?

或者用ps命令:

# ps -eo cpu,comm |grep process_name

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2009-10-22 22:12 |只看该作者
原帖由 兰花仙子 于 2009-10-22 22:07 发表


search下cpan?

或者用ps命令:

# ps -eo cpu,comm |grep process_name

仙子土了吧。

Linux 下,

ps h -o pcpu -C process_name

论坛徽章:
0
5 [报告]
发表于 2009-10-22 22:16 |只看该作者
top -n 1 |awk '/firefox/{print $10}'
ps 不是即时的,用top吧

论坛徽章:
0
6 [报告]
发表于 2009-10-22 22:20 |只看该作者
多谢两位版主.
我从CPAN上search过,也仅有监控当前进程CPU使用率的模块,而我要监控的进程fork过之后直接exec了,所以没办法使用.

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2009-10-22 22:22 |只看该作者
原帖由 haimming 于 2009-10-22 22:16 发表
top -n 1 |awk '/firefox/{print $10}'
ps 不是即时的,用top吧

嗯,我也建议用 top,
但是 top 的话,你这样写也是不对的,
第一,这么写的话,top 并不会列出所有的进程
第二,top 的版本不同,那么对应的列号也不同,比如我这里就应该是 $9,而不是 $10

所以我隆重推出我平时用的一个版本:

  1. top -b -d 1 -n 1 -p `pidof program` | perl -lane '( ($i) = grep { $F[$_] =~ /CPU/ } 0..$#F ) and do{ $_=<>; @F=split; print $F[$i] };'
复制代码

论坛徽章:
0
8 [报告]
发表于 2009-10-22 22:27 |只看该作者
获得进程pid 用top -p 指定也可以

论坛徽章:
0
9 [报告]
发表于 2009-10-22 22:28 |只看该作者
原帖由 flw 于 2009-10-22 22:22 发表

嗯,我也建议用 top,
但是 top 的话,你这样写也是不对的,
第一,这么写的话,top 并不会列出所有的进程
第二,top 的版本不同,那么对应的列号也不同,比如我这里就应该是 $9,而不是 $10

所以我隆重 ...

flw大侠,您给的例子适合在shell脚本用吧.用在perl里边感觉也太怪了.
手头有个管理程序用shell写不合适,才用perl来做.
谢谢两位.教我怎么用top

论坛徽章:
0
10 [报告]
发表于 2009-10-22 22:28 |只看该作者

回复 #7 flw 的帖子

确是这样,偷了一下懒,
受教了,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP