标签(空格分隔): Linux



一,Nmon介绍

  • Nmon是一款计算机性能系统监控工具,因为它免费,体积小,安装简单,耗费资源低,广泛应用于AIX和Linux系统
  • 使用 Nmon 可以很轻松的监控系统的 CPU、内存、网络、硬盘、文件系统、NFS、高耗进程、资源和 IBM Power 系统的微分区的信息

    二,Nmon下载

    首先查看Linux系统内核版本(两种方式):
    1,cat /proc/version

    1. [qgc@localhost nmon16d]$ cat /proc/version
    2. Linux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013

    2,uname -a

    1. [qgc@localhost nmon16d]$ uname -a
    2. Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

    对照上图,我是VMware虚拟机安装的64位centos6.5。
    接着下载nmon软件包:
    1,wget方式下载,地址: [https://nchc.dl.sourceforge.net/project/nmon/nmon16d_x86.tar.gz](https://nchc.dl.sourceforge.net/project/nmon/nmon16d_x86.tar.gz)

    1. [qgc@localhost nmon16d]$ wget https://nchc.dl.sourceforge.net/project/nmon/nmon16d_x86.tar.gz--2018-08-27 11:26:11-- https://nchc.dl.sourceforge.net/project/nmon/nmon16d_x86.tar.gz
    2. Resolving nchc.dl.sourceforge.net... 211.79.60.17, 2001:e10:ffff:1f02::17
    3. Connecting to nchc.dl.sourceforge.net|211.79.60.17|:443... connected.
    4. HTTP request sent, awaiting response... 200 OK
    5. Length: 9252938 (8.8M) [application/x-gzip]
    6. Saving to: nmon16d_x86.tar.gz
    7. 100%[===========================================================>] 9,252,938 1.77M/s in 5.0s
    8. 2018-08-27 11:26:17 (1.77 MB/s) - nmon16d_x86.tar.gz saved [9252938/9252938]
    9. [qgc@localhost nmon16d]$ ls
    10. nmon16d_x86.tar.gz

    2,官网手动下载,地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Downlo ,翻译了下,如下图
    性能测试之nmon对linux服务器的监控 - 图1

  • 以CentOS为例:

    • 因为CentOS就是 RedHat 的免费版本(上面内核版本 2.6.32-431.el6.x86_64),所以对应系统是RHEL 6.5,选择右边包含RedHat 6.5的下载。

性能测试之nmon对linux服务器的监控 - 图2

三,解压安装

下载完成后,可以新建一个目录,作为解压后存放的目录,这里为nmon16d,如果是手工下载的,需要拷贝到虚拟机。

  1. [qgc@localhost Desktop]$ mkdir nmon16d

输入解压命令:tar -zxvf nmon16d_x86.tar.gz -C nmon16d ,-C 是指定解压目录

  1. [qgc@localhost Desktop]$ tar -zxvf nmon16d_x86.tar.gz -C nmon16d
  2. nmon_power_32_linux
  3. nmon_power_32_rhel6
  4. nmon_power_32_sles11
  5. nmon_power_64_kvm2
  6. nmon_power_64_linux
  7. ...

nmon6d目录中,可以找到nmon_x86_64_centos6这个文件,并对它添加执行权限

  1. [qgc@localhost nmon16d]$ chmod +x nmon_x86_64_centos6

再把该程序文件加入环境变量运行目录,如果不是管理员,需要加上sudo命令

  1. [qgc@localhost nmon16d]$ mv nmon_x86_64_centos6 /usr/local/bin/nmon
  2. mv: cannot move `nmon_x86_64_centos6' to `/usr/local/bin/nmon': Permission denied
  3. [qgc@localhost nmon16d]$ sudo mv nmon_x86_64_centos6 /usr/local/bin/nmon
  4. [sudo] password for qgc:
  5. [qgc@localhost nmon16d]$

四,运行Nmon

输入nmon命令启动Nmon,如下图
性能测试之nmon对linux服务器的监控 - 图3
在上面的交互式窗口中,可以使用nmon 快捷键来显示不同的系统资源统计数据:

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

按下c,m,d后如下图,CPU、内存、磁盘的消耗情况都直观的展现出来了,按q键可以退出。
性能测试之nmon对linux服务器的监控 - 图4

五,数据采集

性能测试时,需要根据测试场景的执行情况,分析一段时间内系统资源的变化,这时需要nmon采集数据并保存下来,以下是常用的参数:
-f 参数:生成文件,文件名=主机名+当前时间.nmon
-T 参数:显示资源占有率较高的进程
-s 参数:-s 10表示每隔10秒采集一次数据
-c 参数:-s 10表示总共采集十次数据
-m 参数:指定文件保存目录
具体的参数详解可参考:[https://www.ibm.com/support/knowledgecenter/ssw_aix_71/n_commands/nmon.html](https://www.ibm.com/support/knowledgecenter/ssw_aix_71/n_commands/nmon.html)
如每隔5秒采集一次,一共采集12次,就是1分钟的数据(生成的文件已标红):

  1. [qgc@localhost nmon16d]$ nmon -f -s 5 -c 12 -m /home/qgc/Desktop/
  2. [qgc@localhost nmon16d]$ nmon -f -T -s 5 -c 12 -m /home/qgc/Desktop/
  3. [qgc@localhost Desktop]$ ls
  4. lmon16g.c localhost_180827_2318.nmon nmon16d_x86.tar.gz
  5. localhost_180827_2317.nmon nmon16d Test

数据采集完毕后,如需关闭nmon进程,需要获取nmon的pid

  1. [qgc@localhost Desktop]$ ps -ef | grep nmon
  2. qgc 4455pid 4349ppid 0 23:40 pts/0 00:00:00 nmon
  3. qgc 4491 4429 0 23:40 pts/1 00:00:00 grep nmon

再安全杀掉该进程:kill -9 pid

  1. [qgc@localhost Desktop]$ kill -9 4455
  2. [qgc@localhost Desktop]$ ps -ef | grep nmon
  3. qgc 4493 4429 0 23:40 pts/1 00:00:00 grep nmon

六,数据分析

1,下载nmon analyser
借助nmon analyser可以把nmon采集的数据生成直观的Excel表,nmon analyser可以在IBM的官网下载,[https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power+Systems/page/nmon_analyser](https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power+Systems/page/nmon_analyser)
性能测试之nmon对linux服务器的监控 - 图5
在windows上下载后解压,有word和exce两个文档,Word是说明文档,包括更新日志,详细参数等,其中的Excel就是nmon analyser工具了。
2,打开nmon analyser
双击打开nmon analyser v54.xlsm,点击Analyze nmon data按钮:
性能测试之nmon对linux服务器的监控 - 图6
注:因为我用的个人免费版WPS,没有包含宏,需要安装宏插件(VBA for WPS),Excel是自带宏插件的,如果宏不能运行,需要做以下操作:
工具 -> 宏 -> 安全性 -> 中,然后再打开文件并允许运行宏。
3,下载VBA for WPS
地址:[https://pan.baidu.com/s/1QzW4ebQxYQtxgVfkTmxVJw](https://pan.baidu.com/s/1QzW4ebQxYQtxgVfkTmxVJw),下载VBA7.0.1590_For WPS(中文).exe后,先退出WPS,再直接安装就行,再次打开nmon analyser,启用宏
性能测试之nmon对linux服务器的监控 - 图7
4,使用nmon analyser生成图表
成功打开nmon analyser后,点击Analyze nmon data按钮,选择nmon数据文件,会再次提示另存为,选择地址保存即可。
性能测试之nmon对linux服务器的监控 - 图8
下图就是nmon生成的数据报告截图,底部可以切换其他资源信息。
性能测试之nmon对linux服务器的监控 - 图9

七、其他

  • 除配合性能测试的短期监控,我们也可以实现对系统的定期监控。定期监控实现如下:

    • 执行命令:

      1. crontab e
    • 在最后一行添加如下命令:

      1. 0 8 * * 1,2,3,4,5 /nmon/nmon_xxx -f -N -m /nmon/log -s 30 -c 1200
      • 表示:

        周一到周五,从早上08点开始,监控10个小时(到18:00整为止),输出到/nmon/log

    • 自动按天采集数据:

      • 在 crontab 中增加一条记录:
        1. 0 0 * * * root nmon -s300 -c288 -f -m /home/ > /dev/null 2>&1

        300*288=86400 秒,正好是一天的数据