nmon的二次开发

最近需要在linux下监视某几个进程,并且生成报表来研究。发现这款open source的工具 nmon在统计方面做得非常棒,只可惜不支持统计指定的进程。唯一有一个top的指令,可以按照cpu占用率排序的进程,看了源代码,发现一些cpu占用为0的就不再统计了,不符合我的需求。

可以在nmon的官方网站下载到源代码。我习惯于eclipse+cdt做C开发,拷贝到某个工程下面,分析一下源代码。

需要做以下的事情,

1.增加一个参数 -O <processName~processName~...> ,类似这样可以指定需要监视的进程,其他进程就忽略。

2.切割 ~ 分开的进程名,得到的进程放入数组。

3.每一次NMON loop循环的时候(循环次数由 -c <次数>指定),写入 nmon的分析文件。根据 nmon analyser v33g.xls 的VB程序可以写入以下格式的数据,就可以直接用nmon analyser打开,打开后就可以看到柱状图和线性图,刚好满足我的需要。之前我还去更改nmon analyser的VB脚本,弄好后还不如原来默认的效果好。

格式 :  <sheetname>,<A1 name>,<processName1>,<processName2>,...<processNameN>


最后代码重新编译,生成nmon_x86_m2可执行文件。

运行以下命令:

./nmon_x86_m2 -s2 -c30 -fT -O scanCC~retroBB~tgpTT~tgpUU 

最后运行生成localhost_120420_1802.nmon文件.

拷贝这个文件到windows系统,用nmon analyser v33g.xls打开后,就可以看到自己指定的进程统计。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
nmon version 12f for Redhat linux, 我在ubuntu 10.10下编译成功,编译过程如下: make cc -o nmon_power_rhel3 lmon.c -g -O2 -D JFS -D GETUSER -Wall -D LARGEMEM -lncurses -g -D POWER lmon.c:26: fatal error: ncurses.h: 没有那个文件或目录 compilation terminated. make: *** [nmon_power_rhel3] 错误 1 zale@zale-infohold:~/下载/nmon-12f$ zale@zale-infohold:~/下载/nmon-12f$ sudo apt-get install libncurses5-dev [sudo] password for zale: 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 下列软件包是自动安装的并且现在不需要了: nvidia-cg-toolkit libogremain-1.7.3 libogrepaging-1.7.3 libogreterrain-1.7.3 libmygui 使用'apt-get autoremove'来卸载它们 下列【新】软件包将被安装: libncurses5-dev 升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。 需要下载 1,580kB 的软件包。 解压缩后会消耗掉 6,693kB 的额外空间。 获取:1 http://archive.ubuntu.com/ubuntu/ maverick/main libncurses5-dev i386 5.7+20100626-0ubuntu1 [1,580kB] 下载 1,580kB,耗时 53秒 (29.4kB/s) 选中了曾被取消选择的软件包 libncurses5-dev。 (正在读取数据库 ... 系统当前共安装有 236248 个文件和目录。) 正在解压缩 libncurses5-dev (从 .../libncurses5-dev_5.7+20100626-0ubuntu1_i386.deb) ... 正在处理用于 man-db 的触发器... 正在设置 libncurses5-dev (5.7+20100626-0ubuntu1) ... zale@zale-infohold:~/下载/nmon-12f$ make cc -o nmon_power_rhel3 lmon.c -g -O2 -D JFS -D GETUSER -Wall -D LARGEMEM -lncurses -g -D POWER zale@zale-infohold:~/下载/nmon-12f$ ls -l 总计 496 -rw-r--r-- 1 zale zale 154481 2009-11-17 07:26 lmon12f.c -rw-r--r-- 1 zale zale 154481 2011-07-31 19:37 lmon.c -rw-rw-rw- 1 zale zale 2478 2009-03-06 16:45 makefile -rwxr-xr-x 1 zale zale 191075 2011-07-31 19:40 nmon_power_rhel3 zale@zale-infohold:~/下载/nmon-12f$ cc --version cc (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5 Copyright (C) 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值