在测试宝宝们做压力测试的时候,通常会涉及到监控 服务器的操作系统来分析服务器的承载情况。
如果可以把各个硬件的监控信息生成形象化的分析报表图对于我们来说是件太好的事情了,而通过ibm的nmon和nmon_analyser两者的结合完全可以实现我们的要求。首先对nmon和nmon_analyser做一个大概介绍。
Nmon 是一个分析aix和linux性能的免费工具(其主要是ibm为自己的aix操作系统开发的,但是也可以应用在linux操作系统上),而nmon_analyser是nmon的一个工具可以把nmon生成的报告转化成excel报表的形式供我们查看。下面先让我们饱下眼福,看下nmon_analyser生成的报表。(这样我们学习起来会有点动力,呵呵)
(cpu 和系统io 汇总图)
(磁盘读写io相关图)
只要安装nmon工具然后通过nmon_analyser把nmon生成的数据转化成excel格式的即可。下面开始讲nmon工具的安装和使用。
首先下载nmon软件http://nmon.sourceforge.net/pmwiki.php?n=Site.Download,打开这个网站下载符合自己操作系统的硬件的相关nmon版本的软件。
- 用root用户登录系统,建立目录:#mkdir /nmon
- 通过SecureCRT将下载的nmon工具上传至Linux服务器 目录/nmon下。
- 修改tar包权限:#chmod +x nmon_linux_14i_newer_Linux_versions.tar.gz
- 解压文件:#tar xvfZ nmon_linux_14i_newer_Linux_versions.tar.gz
- 执行授权命令:#chmod +x nmon_linux_x86
6)更改名字 : # mv nmon_x86 nmon
7) 运行nmon命令: # ./nmon
注意:nmon是个交互式程序,当我们执行nmon的时候会出现一个交互窗口,我们执行相关的命令就会出现相关的信息。
当我们执行[root@localhost source]# ./nmon后出现一个帮助信息,我们执行相关的命令,就会出现相关的信息了,比如这里我按c,就会显示cpu的相关信息
接下来我们紧接着按键盘m和n字母就会出现内存和网卡的相关信息了。
按q键,退出显示,其实就是这么简单。这些数据均是实时刷新,一目了然。
接下来我们想要的报表怎么来实现呢?为了配合性能测试,我们往往需要将一个时间段内系统资源消耗情况记录下来,这时可以使用命令在远程窗口执行命令:
./nmon -f -N -m /nmon/log -s 30 -c 120
其中各参数表示:-f 按标准格式输出文件:<hostname>_YYYYMMDD_HHMM.nmon-N include NFS sections-m 切换到路径去保存日志文件-s 每隔n秒抽样一次,这里为30-c 取出多少个抽样数量,这里为120,即监控=120(30/60/60)=1小时根据小时计算这个数字的公式为:c=h3600/s,比如要监控10小时,每隔30秒采样一次,则c=10*3600/30=1200
该命令启动后,会在/nmon/log目录下生成监控文件,并持续写入资源数据,直至360个监控点收集完成——即监控1小时,这些操作均自动完成,无需手工干 预,测试人员可以继续完成其他操作,界面上看不到其运行的界面。
如果想停止该监控,需要通过“#ps –ef|grep nmon”查询进程号,然后杀掉该进程以停止监控。
localhost_161106_0523.nmon 就是我们所生成的数据文件,所有的信息都在localhost_161106_0523.nmon记录,而且我们通过more命令后发现都是我们看不懂的一些文本,这就需要我们把其转化成我们能看懂的excel格式的文件。
我们把localhost_161106_0523.nmon文件导出到我们的windows本地。然后我们从http://www.ibm.com/developerworks/wikis/display/Wikiptype/nmonanalyser
下载nmonanalyser软件到windows本地。打开解压缩文件后,我们会发现2个文件,一个是nmonanalyse的说明word格式的说明文档,另一个是excel格式的nmonanalyser文件。
接下来我们双击"Analyze nmon data "按钮导入我们刚才生成的localhost_161106_0523.nmon即可,这时你就可以看到文章最开始显示的那个图片啦~~
除配合性能测试的短期监控,我们也可以实现对系统的定期监控,作为运营维护阶段的参考。定期监控实现如下:
- 执行命令:#crontab –e
- 在最后一行添加如下命令:0 8 * * 1,2,3,4,5 /nmon -f -N -m /nmon/log -s 30 -c 1200表示:周一到周五,从早上08点开始,监控10个小时(到18:00整为止),输出到/nmon/log