性能测试之nmon对linux服务器的监控
大家都知道在做性能测试的时候,需要监控服务器的资源情况,而大多数服务器是Linux系统,网上资料嘿多,这里汇总介绍下Nmon监控工具:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一,Nmon介绍
(这句不用看——Nmon得名于 Nigel 的监控器,是IBM的员工 Nigel Griffiths 为 AIX 和 Linux 系统开发的,使用 Nmon 可以很轻松的监控系统的 CPU、内存、网络、硬盘、文件系统、NFS、高耗进程、资源和 IBM Power 系统的微分区的信息)。
Nmon是一款计算机性能系统监控工具,因为它免费,体积小,安装简单,耗费资源低,广泛应用于AIX和Linux系统。
二,Nmon下载
首先查看Linux系统内核版本(两种方式):
1,cat /proc/version
[qgc@localhost nmon16d]$ cat /proc/version
Linux version 2.6.-.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4. (Red Hat 4.4.-) (GCC) ) # SMP Fri Nov :: UTC
2,uname -a
[qgc@localhost nmon16d]$ uname -a
Linux localhost.localdomain 2.6.-.el6.x86_64 # SMP Fri Nov :: UTC 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
[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
Resolving nchc.dl.sourceforge.net... 211.79.60.17, :e10:ffff:1f02::
Connecting to nchc.dl.sourceforge.net|211.79.60.17|:... connected.
HTTP request sent, awaiting response... OK
Length: (8.8M) [application/x-gzip]
Saving to: “nmon16d_x86.tar.gz” %[===========================================================>] ,, 1.77M/s in .0s -- :: (1.77 MB/s) - “nmon16d_x86.tar.gz” saved [/] [qgc@localhost nmon16d]$ ls
nmon16d_x86.tar.gz
2,官网手动下载,地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Downlo ,翻译了下,如下图

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

三,解压安装
下载完成后,可以新建一个目录,作为解压后存放的目录,这里为nmon16d,如果是手工下载的,需要拷贝到虚拟机。
[qgc@localhost Desktop]$ mkdir nmon16d
输入解压命令:tar -zxvf nmon16d_x86.tar.gz -C nmon16d ,-C 是指定解压目录
[qgc@localhost Desktop]$ tar -zxvf nmon16d_x86.tar.gz -C nmon16d
nmon_power_32_linux
nmon_power_32_rhel6
nmon_power_32_sles11
nmon_power_64_kvm2
nmon_power_64_linux
...
在nmon6d目录中,可以找到nmon_x86_64_centos6这个文件,并对它添加执行权限
[qgc@localhost nmon16d]$ chmod +x nmon_x86_64_centos6
再把该程序文件加入环境变量运行目录,如果不是管理员,需要加上sudo命令
[qgc@localhost nmon16d]$ mv nmon_x86_64_centos6 /usr/local/bin/nmon
mv: cannot move `nmon_x86_64_centos6' to `/usr/local/bin/nmon': Permission denied
[qgc@localhost nmon16d]$ sudo mv nmon_x86_64_centos6 /usr/local/bin/nmon
[sudo] password for qgc:
[qgc@localhost nmon16d]$
四,运行Nmon
输入nmon命令启动Nmon,如下图

在上面的交互式窗口中,可以使用nmon 快捷键来显示不同的系统资源统计数据:
q: 停止并退出 Nmonh: 查看帮助c: 查看 CPU 统计数据m: 查看内存统计数据d: 查看硬盘统计数据k: 查看内核统计数据n: 查看网络统计数据N: 查看 NFS 统计数据j: 查看文件系统统计数据t: 查看高耗进程V: 查看虚拟内存统计数据v: 详细模式
按下c,m,d后如下图,CPU、内存、磁盘的消耗情况都直观的展现出来了,按q键可以退出。

五,数据采集
性能测试时,需要根据测试场景的执行情况,分析一段时间内系统资源的变化,这时需要nmon采集数据并保存下来,以下是常用的参数:
-f 参数:生成文件,文件名=主机名+当前时间.nmon
-T 参数:显示资源占有率较高的进程
-s 参数:-s 10表示每隔10秒采集一次数据
-c 参数:-s 10表示总共采集十次数据
-m 参数:指定文件保存目录
具体的参数学习可参考博客:https://www.cnblogs.com/iclk/p/4456311.html
如每隔5秒采集一次,一共采集12次,就是1分钟的数据(生成的文件已标红):
[qgc@localhost nmon16d]$ nmon -f -s -c -m /home/qgc/Desktop/
[qgc@localhost nmon16d]$ nmon -f -T -s -c -m /home/qgc/Desktop/
[qgc@localhost Desktop]$ ls
lmon16g.c localhost_180827_2318.nmon nmon16d_x86.tar.gz
localhost_180827_2317.nmon nmon16d Test
数据采集完毕后,如需关闭nmon进程,需要获取nmon的pid(已标红)
[qgc@localhost Desktop]$ ps -ef | grep nmon
qgc 4455(pid) 4349(ppid) : pts/ :: nmon
qgc : pts/ :: grep nmon
再安全杀掉该进程:kill -9 pid
[qgc@localhost Desktop]$ kill -
[qgc@localhost Desktop]$ ps -ef | grep nmon
qgc : pts/ :: 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

在windows上下载后解压,有word和exce两个文档,Word是说明文档,包括更新日志,详细参数等,其中的Excel就是nmon analyser工具了。
2,打开nmon analyser
双击打开nmon analyser v54.xlsm,点击Analyze nmon data按钮:

注:因为我用的个人免费版WPS(10.1),没有包含宏,需要安装宏插件(VBA for WPS),Excel是自带宏插件的,如果宏不能运行,需要做以下操作:
工具 -> 宏 -> 安全性 -> 中,然后再打开文件并允许运行宏。
3,下载VBA for WPS
地址:https://pan.baidu.com/s/1QzW4ebQxYQtxgVfkTmxVJw,下载VBA7.0.1590_For WPS(中文).exe后,先退出WPS,再直接安装就行,再次打开nmon analyser,启用宏

4,使用nmon analyser生成图表
成功打开nmon analyser后,点击Analyze nmon data按钮,选择nmon数据文件,会再次提示另存为,选择地址保存即可。

下图就是nmon生成的数据报告截图,底部可以切换其他资源信息。

性能测试之nmon对linux服务器的监控的更多相关文章
- Linux服务器上监控网络带宽的18个常用命令nload, iftop,iptraf-ng, nethogs, vnstat. nagios,运用Ntop监控网络流量
Linux服务器上监控网络带宽的18个常用命令 本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量 ...
- Linux服务器上监控网络带宽的18个常用命令 zz
Linux服务器上监控网络带宽的18个常用命令 本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量 ...
- 用 Python 脚本实现对 Linux 服务器的监控
目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件).glances(资源监控工具)在实际工作中,Linux 系统 ...
- Linux 服务器系统监控脚本 Shell【转】
转自: Linux 服务器系统监控脚本 Shell - 今日头条(www.toutiao.com)http://www.toutiao.com/i6373134402163048961/ 本程序在Ce ...
- Python 脚本实现对 Linux 服务器的监控
本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 原文地址 由于原文来自微信公众号,并且脚本都是图片,所以这里 ...
- Linux服务器上监控网络带宽的18个常用命令和工具
一.如何查看CentOS的网络带宽出口 检查维护系统的时候,经常会要查看服务器的网络端口是多大的,所以需要用到Linux的一个命令. 如何查看CentOS的网络带宽出口多大?可以用下面的命令来查看. ...
- nmon脚本——对Linux服务器的监控
继服务器被挖之后,我又开拓了另一个监控工具----nmon! Nmon可以很轻松的监控系统的CPU.内存.网络.硬盘.文件系统.NFS.高耗进程.资源和IBM Power系统的微分区的信息,还有专属的 ...
- 《Linux服务器的监控》
本文地址:http://www.cnblogs.com/aiweixiao/p/7131532.html 原文地址(公众号):http://t.cn/RKwmqUs 点击关注 微信公众号 1. 监控概 ...
- Linux服务器上监控网络带宽的18个常用命令
[51CTO精选译文]本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示. 一些命令可以 ...
随机推荐
- luanet分布式lua框架
luanet最初只是一个网络框架,它简单的封装了一些网络相关接口然后暴露到lua中,让lua可以构建简单的网络应用. 随着我的手游服务器的开发,我发现在C语言中要实现一个简洁易用的RPC调用接口并不容 ...
- .net写入文本到本地
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"d:\test\ErrorLog.txt", t ...
- 安装与使用 Trac 来管理项目
1 概要 以 Windows 平台为例,讲述一下有关 Trac 的基本配置与使用,同时分享一下有关 Trac 的项目管理经验. 2 安装 Trac 前的准备工作 2.1 准备工作 安装 Pytho ...
- ActiveMQ 消息持久化到数据库(Mysql、SQL Server、Oracle、DB2等)
ActiveMQ具体就不介绍了,直接介绍如何讲ActiveMQ持久化到本地数据库,以SQL Server 2008 R2为例1.下载ActiveMQ后直接解压,我下载的是apache-activemq ...
- C语言程序设计--宏和预处理
C语言宏 宏定义常量 #include <stdio.h> #define SIZE 100 #define BANNER "WARNING:" int main(vo ...
- 【CF662C】Binary Table 按位处理
[CF662C]Binary Table 题意:给你一个$n\times m$的01网格,你可以进行任意次操作,每次操作是将一行或一列的数都取反,问你最多可以得到多少个1? $n\le 20,m\le ...
- 【CF875E】Delivery Club 二分+线段树
[CF875E]Delivery Club 题意:有n个快递需要依次接收,这n个快递分部在x轴上,第i个快递的位置是xi.有两个快递员,一开始分别在s0,s1,你可以任意安排哪个人收哪个快递,前提是一 ...
- Android sd卡log日志
import android.os.Environment; import android.util.Log; import java.io.File; import java.io.FileOutp ...
- Html5游戏框架createJs组件--EaselJS(二)绘图类graphics
有端友问我是否有文档,有确实有,但没有中文的,只有英文的,先提供浏览地址供大家参考学习createJs英文文档. EaselJS其实主要就是createJ ...
- ftok函数
ftok函数 系统建立IPC通讯(消息队列.信号量和共享内存)时必须指定一个ID值.通常情况下,该id值通过ftok函数得到. ftok原型 头文件: #include <sys/types.h ...