nmon内存监控和可视化

简介

项目中经常遇到一个问题:某个程序运行的内存和CPU利用如何?例如,当我们开发了一个程序,通常会把他和已有程序作比较,这时候通常会比较内存和CPU使用,最简单粗暴的方式就是使用top查看,为了实时监控,可能需要自己写个脚本每隔一定的间隔进行采样,提取对应的时间,内存,和CPU使用等数值,然后根据这些绘制整个图形。

例如,我们想查看某个进程,进程号为:189183 【使用top 查看进程号】
top -d 5 -p 189183 -b

-p 189183 进程号
-d 5 每隔 5s间隔刷新一次
-b 表示将所有列输出
结果如下图示:
在这里插入图片描述
这时,我们可以通过脚本将每隔时间点采样的数据提取出来,绘制图形。这种方法相对简单,本文不再赘述,下面主要介绍本文的主角nmon和nmon-Analyser。为了简化,本文不会详细介绍该软件的每一个参数,只介绍最常用的参数和命令,防止问题复杂化。下面直接上干货。

nmon生成监控nmon文件

关于nmon的下载和安装:
【官网下载】(http://nmon.sourceforge.net/pmwiki.php)
【安装使用说明】(https://blog.csdn.net/russ44/article/details/53081448)(https://www.cnblogs.com/qgc1995/p/7523786.html)
主要的用法也可以参考上面的安装使用说明。下面也还是重复赘述一下,哈哈!

$PATH/nmon -s 5 -c 50 -ft -m home
 -f  生成文件,文件名=主机名+当前时间.nmon
 -t  显示资源占有率较高的进程
 -s  5  表示每隔5秒采集一次数据
 -c 50  表示总共采集50次数据
 -m /home  将结果保存至/home

需要注意的是-s 5 -c 50的设定,如果程序运行时间比较长(预估),-s 可以设定稍大一些,确保最终的结果文件不会太大,此外就是-c 可以设定的大一些,不然可能程序跑了很久,结果只采集了很少的数据(例如-s 5 -c 50 ,那250秒的时候采样就结束了,那后面的就无法监控了)。最好的方法就是-c先尽量设大一点,然后再程序运行完结束后,再把nmon这个进程kill掉。
通过上面的命令,我们可以会在-m指定的目录下(默认当前路径)生成一个**.nmon文件。接下来使用 nmon-Analyser 来对 **.nmon文件进行可视化。

nmon analyser可视化nmon文件

下载nmon_analyser:(https://sourceforge.net/projects/nmon/files/nmon_analyser_v66.zip)
下载解压可以看到两个文件:
在这里插入图片描述
打开nmon analyser v66.xlsm文件, 设置“宏”:
启用宏
有的可能看不到开发工具:这时可以从”文件->选项“ 设置:勾选开发工具
调出开发工具栏
接着点击analyze nmon data, 选择上面生成的**.nmon文件 就可以进行分析了:
分析
可能的报错信息:
1)文件无法导入,显示
报错1
这是可能时nmon的版本不对,需要check对应的版本。
1)文件能导入,但是只采了一个点,所以无法形成图像
在这里插入图片描述
这个通常是由于程序运行太快,都来不及采多些点,可以使用将nmon -s 设置更小一些,这样就可以采到更多的点了
3)其他的报错暂时没遇到过,如果有道友有新bug,欢迎交流。

最后就是输出的结果了,见官网说的很详细也很认真

参考链接:
nmon官网
linux使用nmon监控、分析系统性能
性能测试之nmon对linux服务器的监控

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值