zoukankan      html  css  js  c++  java
  • Linux下Jmeter+nmon+nmon analyser实现性能监控及结果分析

    一、概述

      前段时间讲述了Jmeter利用插件PerfMon Metrics Collector来监控压测过程中服务器资源的消耗,

    一个偶然机会,我发现nmon这个工具挺不错,和Jmeter插件比起来,nmon记录的信息更加全面一些。

      nmon,一款开源性能监控工具,用于监控linux系统的资源消耗信息,并能把结果输出到文件中,

    然后通过nmon_analyser工具产生数据文件与图形化结果。

    二、nmon及nmon analyser的下载安装

      nmon下载地址:http://nmon.sourceforge.net/pmwiki.php

      nmon analyser下载地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Nmon-Analyser

      nmon根据自己系统版本下载对应的安装包,本次测试使用的是 nmon16m_helpsystems.tar.gz ,

    nmon analyser下载最新的安装包,本次测试使用的是 nmon_analyser_v66.zip 。

      1.将下载的nmon安装包上传到Linux新建目录并解压  

    [test@node06 ~]$ cd /usr/local
    [test@node06 local]$ mkdir nmon
    [test@node06 local]$ cd nmon 
    [test@node06 nmon]$ tar -zxvf nmon16m_helpsystems.tar.gz

      2.根据自己系统的版本,给命令赋予可执行权限

    1 [test@node06 nmon]$ cat /etc/redhat-release 
    2 CentOS release 6.9 (Final)
    3 [test@node06 nmon]$ chmod +x nmon_x86_64_centos6

      3.在命令行输入 ./nmon_x86_64_centos6 即可打开nmon界面

      

     在上面的交互式窗口中,可以使用nmon 快捷键来显示不同的系统资源统计数据:

    • q : 停止并退出 Nmon
    • h : 查看帮助
    • c : 查看 CPU 统计数据
    • m : 查看内存统计数据
    • d : 查看硬盘统计数据
    • k : 查看内核统计数据
    • n : 查看网络统计数据
    • N : 查看 NFS 统计数据
    • j : 查看文件系统统计数据
    • t : 查看高耗进程
    • V : 查看虚拟内存统计数据
    • v : 详细模式

     此时,我们可以通过快捷键来调取关心的系统资源进行显示,该种方式显示信息实时性强,能够

    及时掌握系统承受压力下的运行情况。

    三、配置nmon的环境变量

      完成以上的配置后,已经可以正常使用nmon了。但是,大家有没有发现一个问题,那就是我们想

    使用nmon时必须找到该命令的详细路径才能使用,这样就很不方便了。此时,我们需要将nmon的命令

    添加到系统环境变量中去,以后我们就可以在任何地方使用该命令。

      1.修改启动文件名称,让名称简单化,修改完成执行一次试试

    [test@node06 nmon]$ mv nmon_x86_64_centos6 nmon
    [test@node06 nmon]$ ./nmon

      2.在命令行输入 vim /etc/profile ,将以下内容粘贴到文本末尾,路径要改为自己的安装路径

    PATH=$PATH:/usr/local/nmon
    export PATH

      3.在命令行输入 source /etc/profile 使配置生效,此时,可以在任意目录执行 nmon 命令来启动nmon。

    四、使用nmon监控Jmeter压测期间的系统资源消耗情况

      1.在nmon目录下新建logs文件夹,用来存放监控文件

    [test@node06 ~]$ cd /usr/local/nmon/
    [test@node06 nmon]$ mkdir logs

      2.在命令行输入执行命令 nmon -s 1 -c 80 -f -m /usr/local/nmon/logs 

    参数说明:
    -s 1     每隔n秒抽样一次,这里为1秒
    -c 80    取出多少个抽样数量,这里为80,即监控=1*80/60=1分钟20秒
    -f       按标准格式输出文件名称:<hostname>_YYMMDD_HHMM.nmon
    -m       指定监控文件的存放目录,-m后跟指定目录,如果不指定目录会在该命令的源目录下生成相应的监控文件

      此命令启动后,会在我们指定的目录下生成监控文件,并持续写入资源数据,直至80个监控点收集完成。

    在此期间,测试人员不需要去手动干预。如果想停止监控,查询进程号,然后杀死该进程即可。

    [test@node06 ~]$ ps -ef|grep nmon
    test      8863     1  0 17:05 pts/1    00:00:00 nmon -s 1 -c 120 -f -m /usr/local/nmon/logs/
    test      9111 25160  0 17:07 pts/1    00:00:00 grep nmon
    [test@node06 ~]$ kill 8863
    -bash: kill: (8863) - No such process

      这里因为nmon已运行结束,所以当我kill的时候会提示 No such process 。

      3.运行Jmeter脚本,直至脚本运行结束

      本次压测只为了讲述使用流程,测试结果中TPS不具实际意义,为避免不必要的争议,这里将其马赛克了。

    五、查看和分析压测结果

      1.将生成的监控文件下载到本地

      2.将本地的 nmon_analyser_v66.zip 解压,解压后的文件夹内有.pdf和.xlsm两个文件,我们打开.xlsm文件。

      3.点击Analyse nomn data按钮,将下载到本地的监控文件添加进去,最后会生成一个.xlsx文件,这个文件里就是我们需要的数据报告。

      注意:nmon analyser需要借助Excel的宏,WPS默认没有安装宏,即使安装了插件也容易出现异常情况,

    建议使用Microsoft Excel工作表。

      宏语言 Visual Basic for Application(VBA). Visual Basic是windows环境下开发应用软件的一种通用程序设

    计语言,功能强大,简便易用。VBA是它的一个子集,可以广泛地应用于Microsoft公司开发的各种软件中,

    例如Word、Excel、Access等。

      4.需要关注的一些数据

      1)CPU_ALL,是服务器cpu使用率的详细数据。

     

      User%:显示在用户模式下执行的程序所使用的 CPU 百分比

      Sys%:显示在内核模式下执行的程序所使用的 CPU 百分比

      Wait%:显示等待 IO 所花的时间百分比

      Idle%:显示 CPU 的空闲时间百分比

      有效行:由于nmon启动时间未必是应用平稳的时间,同时nmon监控时间段也许比应用施压的要长。所以

    nmon的结果里常常存在一些明显不合理的数据,比如前几次结果的CPU等占用明显低于中段的平均数据,或者

    后面几次采样结果很小,对于这样的数据我们在分析的时候要予以过滤。

      2)MEM,是服务器内存使用率的概况。

      

      在MEM表里面使用如下公式计算出每行的内存使用率并进行取平均:

          (Memtotal - Memfree - cached - buffers)/Memtotal  * 100即( =(B2-F2-K2-N2)/B2*100)

      通过分析内存使用率的趋势,可定位是否内存泄露情况。

      有人看到内存使用率是99%,就认为内存用满了,并没有区分内存分页是什么类型,这样武断的说内存用满了是不科学的。在AIX上

    主要关注的是计算内存占整个物理内存的百分比,linux上主要关注的是active内存占整个物理内存的百分比。

      3)Disk_SUMM,总体disk读、写以及I/O操作

      

      Disk Read kb/s 每个磁盘执行采样数据;(磁盘设备的读速率)

      Disk Write kb/s 每个磁盘执行采样数据;(磁盘设备的写速率)

      IO/sec 每秒进行的IO数(一次IO就是控制操作一次读或写,IO块就是读或写的大小),图中为上方黑色的线,报告中写的是这个参数的值

      4)NET,网络

      Total read 每秒接收到的千字节的数目,如图蓝色部分

      Total write 每秒发送的千字节的数目,如图橙色部分

      网络=Total read-Total write

      网络的指标一般要根据设备来确定,百兆网卡的意思是每秒能够传输的网络流量是100Mbps,即最大的下载速度是12.5MB/s,一般服务器是千兆网卡,即125MB/s

    参考资料:  

      nmon 性能:分析 AIX 和 Linux 性能的免费工具

      https://www.ibm.com/developerworks/cn/aix/library/analyze_aix/index.html  

      nmon analyser----生成 AIX 性能报告的免费工具

      https://www.ibm.com/developerworks/cn/aix/library/nmon_analyser/index.html

  • 相关阅读:
    MFC Windows 程序设计>WinMain 简单Windows程序 命令行编译
    AT3949 [AGC022D] Shopping 题解
    CF643D Bearish Fanpages 题解
    CF643C Levels and Regions 题解
    CF241E Flights 题解
    CF671C Ultimate Weirdness of an Array 题解
    CF1592F Alice and Recoloring 题解
    GYM 102452E 题解
    CF494C Helping People 题解
    P5556 圣剑护符
  • 原文地址:https://www.cnblogs.com/Sweettesting/p/13048877.html
Copyright © 2011-2022 走看看