Linux性能监控工具Nmon

nmon基础
232阅读 · 2020-11-3 22:58发布

nmon简介

官方网址:http://nmon.sourceforge.net/

nmon是一款在Linux操作系统上广泛使用的监控与分析开源工具,它能在系统运行过程中实时地捕捉系统资源的使用情况,记录的信息比较全面,并且能输出结果到文件中,然后通过nmon_analyzer工具产生数据文件与图形化结果。

  • 开源
  • 占用系统资源少(一般不到2%)
  • 功能强大(监控数据类型全面)
  • 结合grafana之类的仪表图,可以更直观的实时展示所监控的数据
  • 移植性、兼容性较好

下载与安装

下载安装nmon

下载地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download

查看自己操作系统的发行版本

[root@mq2 ~]# lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.4.1708 (Core) 
Release:    7.4.1708
Codename:   Core

然后在官网的下载地址中搜索系统版本,例如下图centos7。

image

点击左侧名称下载,或者使用wget直接下载到linux服务器上。

mkdir /data
cd /data
wget http://sourceforge.net/projects/nmon/files/nmon16e_mpginc.tar.gz

解压下载的文件,提取需要版本,赋予执行权限即可。

# 解压
tar -xzvf nmon16e_mpginc.tar.gz
# 改名
mv nmon_x86_64_centos7 nmon
# 赋予可执行权限
chmod +x nmon

下载使用Nmon-Analyser

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

Nmon-Analyser用于将nmon监控的结果文件生成图形报表,展示资源占用的各项信息。

使用Nmon-Analyser需要在电脑中安装excel软件并且支持执行VBA宏。

下载解压后会有如下两个文件:

  • NA_UserGuide v66.pdf
  • nmon analyser v66.xlsm

nmon的使用

图形化使用

执行./nmon即可显示nmon图形化界面。

image

可以使用如下快捷键查看系统信息

# c
查看CPU相关信息
# m
查看内存相关信息
# d          
查看磁盘相关信息
# n          
查看网络相关信息
# t
查看相关进程信息
# h          
查看帮助相关信息

image

更多的帮助信息参考如下

x HELP: Hit h to remove this Info   Hit q to Quit      x
x Letters which toggle on/off statistics:                                                                                                                   x
x h = This help                         | r = Resources OS & Proc                                                                                           x
x c = CPU Util  C = wide view           | l = longer term CPU averages                                                                                      x
x m = Memory & Swap    L=Huge           | V = Virtual Memory                                                                                                x
x n = Network                           | N = NFS                                                                                                           x
x d = Disk I/O Graphs  D=Stats          | o = Disks %Busy Map                                                                                               x
x k = Kernel stats & loadavg            | j = Filesystem Usage                                                                                              x
x M = MHz by thread & CPU                                                                                                                                   x
x t = TopProcess 1=Priority/Nice/State  | u = TopProc with command line                                                                                     x
x     ReOrder by: 3=CPU 4=RAM 5=I/O     |     Hit u twice to update                                                                                         x
x g = User Defined Disk Groups          | G = with -g switches Disk graphs                                                                                  x
x     [start nmon with -g <filename>]   |     to disk groups only                                                                                           x
x                                       | b = black & white mode                                                                                            x
x Other Controls:                       |                                                                                                                   x
x + = double the screen refresh time    | 0 = reset peak marks (">") to zero                                                                                x
x - = half   the screen refresh time    | space refresh screen now                                                                                          x
x . = Display only busy disks & CPU     | q = Quit                                                                                                          x
x                                                                                                                                                           x
x (C) Copyright 2009 Nigel Griffiths    | See http://nmon.sourceforge.net

命令化使用

通过命令监控系统状态,捕获各项数据。

./nmon -ft -s 10 -c 60 -m /data/nmon 
# 参数说明 
-f   监控结果以文件形式输出,默认机器名+日期.nmon格式 
-F   指定输出的文件名,比如test.nmon 
-s   指的是采样的频率,单位为秒
-c   指的是采样的次数,即以上面的采样频率采集多少次 
-m   指定生成的文件目录

上面信息每10秒采集一次服务器状态,总共采集60次,也就是执行十分钟。可以通过ps -ef|grep nmon查看nmon是否执行完毕。

image

结果分析

Nmon-Analyser生成结果

打开nmon analyser v66.xlsm(请确保已启用EXCEL中的VBA宏),点击Analyze nmon data。

image

解析后新生成的表格里就有图形化数据了。

image

Nmon-Analyser结果解析

比较重点的sheet:

  • SYS_SUMM:服务器资源使用率汇总表:整体信息页面,显示当前服务器的总体性能情况。
  • AAA:服务器基本信息表:显示当前服务器基本信息,关于操作系统以及 nmon 本身的一些信息。
  • PIVOTCHART:数据透视图:这些参数被用来构建数据透视图。
  • DISK_SUMM:总体disk读、写以及I/O操作表:按采集时间显示所有磁盘和分区的Read/Write的速率(KB/s)和所有磁盘和分区的I/O率。
  • CPU_ALL:显示所有CPU平均占用情况,其中包含 SMT 状态,可以看到 CPU 整体上在每个监控点的数据。
  • CPU_SUMM:显示每一个CPU在执行时间内的占用情况。
  • MEM:内存(MB)报表:本 sheet 主图上显示空闲实存的数量。
  • CPU00x:可以看到 CPU x在每个监控点的数据。

更多参数解析: https://gusanshang.blog.csdn.net/article/details/84325837