【OS】NMON的简介和使用

1. 目的

本文介绍操作系统监控工具Nmon的概念、使用方式及使用参数。指导运维人员通过nmon工具监视AIX/Linux操作系统资源使用情况,收集监控结果及产生的数据文件,制作相关系统性能分析报告。

2. Nmon简介

Nmon (Nigel’s Monitor)是由IBM 提供、免费监控 AIX 系统与 Linux 系统资源的工具。该工具可将服务器系统资源耗用情况收集起来并输出一个特定的文件,并可利用 excel 分析工具(nmon analyser)进行数据的统计分析。

2.1  软件特性

nmon 工具可以在一个屏幕上显示所有重要的性能优化信息,并动态地对其进行更新。这个高效的工具可以工作于任何哑屏幕、telnet 会话、甚至拨号线路。另外,它不会消耗大量的 CPU 周期,通常低于百分之二(在更新的计算机上,其 CPU 使用率将低于百分之一)。 nmon使用哑屏幕,在屏幕上对数据进行显示,并且每隔两秒钟对其进行更新。用户可以很容易地将这个时间间隔更改为更长或更短的时间段。如果拉伸窗口,并在 X Windows、VNC、PuTTY 或类似的窗口中显示这些数据,nmon 工具可以同时输出大量的信息。

nmon 工具还可以将相同的数据捕获到一个文本文件,便于以后对报告进行分析和绘制图形。输出文件采用电子表格的格式 (.csv)。

目前nmon已开源,以sourceforge为根据地,网址是http://nmon.sourceforge.net

2.2  软件组成

Nmon使用需要nmon工具和nmonanalyser分析程序两者配合使用。nmon工具生成性能数据文件,然后monanalyser以nmon生成的数据文件作为输入,输出为Excel 电子表格,并自动地生成相应的图形,使得我们能够直观地观察OS性能(CPU、IO和内存等)的变化过程。

2.3  运行环境

    nmon 工具运行于:

· AIX? 4.1.5、4.2.0、4.3.2 和 4.3.3(nmon Version 9a:该版本的功能已经确定,并且不会对其进行进一步的开发。)

· AIX 5.1、5.2 和 5.3(nmon Version 10:该版本现在支持 AIX 5.3 和基于 POWER5? 处理器的计算机,并且提供了 SMT 和共享 CPU 微分区的支持。)

· pSeries? p5 和 OpenPower? 上的 Linux? SUSE SLES 9、Red Hat EL 3 和 4、Debian

· Linux SUSE、Red Hat 和许多最新的 x86(32 位模式的 Intel 和 AMD)上的发布版

· zSeries? 或 mainframe 上的 Linux SUSE 和 Red Hat

nmon 工具大约每六个月更新一次,或者在可用的新的操作系统发布版中对其进行更新。

2.4  软件功能

nmon 工具可以为 AIX 和 Linux 性能专家提供监视和分析性能数据的功能,其中包括:

· CPU 使用率

· 内存使用情况

· 内核统计信息和运行队列信息

· 磁盘 I/O 速度、传输和读/写比率

· 文件系统中的可用空间

· 磁盘适配器

· 网络 I/O 速度、传输和读/写比率

· 页面空间和页面速度

· CPU 和 AIX 规范

· 消耗资源最多的进程

· IBM HTTP Web 缓存

· 用户自定义的磁盘组

· 计算机详细信息和资源

· 异步 I/O,仅适用于 AIX

· 工作负载管理器 (WLM),仅适用于 AIX

· IBM TotalStorage? Enterprise Storage Server? (ESS) 磁盘,仅适用于 AIX

· 网络文件系统 (NFS)

· 动态 LPAR (DLPAR) 更改,仅适用于面向 AIX 或 Linux 的 pSeries p5 和 OpenPower

2.5  软件获取

nmon工具和nmonanalyser工具都可以在IBM的Wike页面上下载到。

1) Nmon下载:
位置:可从IBM Wiki上下载
http://www-941.haw.ibm.com/collaboration/wiki/display/WikiPtype/nmon
下载页面如下:
下载 (31.17 KB)2009-2-22 23:49

例如测试的系统是AIX5.3,那么就可以下载nmon4aix12e.zip,下载后可以看到压缩包里是一些文件,如下:

下载 (8.54 KB)

2009-2-22 23:49

其实nmon就是shell脚本,nmon文件运行时调用其他的文件,生成性能数据,这个工具运行时也是通过执行nmon脚本接受参数。

2) Nmonanalyser下载:
位置:可从可从IBM Wiki上下载
http://www-941.haw.ibm.com/collaboration/wiki/display/Wikiptype/nmonanalyser
下载页面如下:

下载 (26.08 KB)

2009-2-22 23:49

例如下载V3.3版本的Nmonanalyser

3. Nmon使用

3.1  下载软件

1) 下载之前须确定操作系统内核版本,本文以公司服务器192.168.40.212为例。登录服务器使用命令获取操作系统版本信息:

 

查看可知为Enterprise Linux Server release 5.5。

2) 登录IBM官方网站(http://nmon.sourceforge.net/pmwiki.php?n=Site.Download)下载相应版本的nmon工具:nmon_linux_14g.tar.gz 

3.2  安装软件

1) 用root用户登录系统,建立目录:#mkdir  /nmon

2) 通过FTP将下载的nmon工具上传至服务器 192.168.40.212目录/nmon下。 

3) 修改tar包权限:#chmod +x  nmon_linux_14g.tar.gz 

4) 解压文件:#tar xvfZ  nmon_linux_14g.tar.gz 

5) 执行授权命令:#chmod  +x  nmon_x86_rhel54

3.3  运行界面

1) 运行./nmon_x86_rhel54,便可进入nmon的监控界面,如下图:

 

2) 键入“c”查看系统CPU使用情况

 

3) 键入“m”查看系统内存使用情况

 

4)  键入“d”查看系统磁盘I/O情况

 

5) 键入“h”查看帮助信息

 

3.4  使用方法

3.4.1 实时监控

在完成配置后,只需要“#./nmon”命令即可运行程序,通过一些快捷键调取关心的系统资源指标进行显示,如按键“C”可以查看CPU相 关信息;按键“D”可以查看磁盘信息;按键“T”可以查看系统的进程信息;“M”对应内存、“N”对应网络等等,完整的快捷键对应内容可以通过帮助(按键 “H”)查看,可以显示Linux系统CPU、内存、进程信息,包括了CPU的用户、系统、等待和空闲状态值,可用内存、缓存大小以及进程的CPU消耗等详细指标。 

该种方式显示信息实时性强,能够及时掌握系统承受压力下的运行情况,每颗CPU利用率是多少、内存使用多少、网络流量多少、磁盘读写……这些数据均是实时刷新,一目了然。

3.4.2 后台监控

为了配合性能测试,我们往往需要将一个时间段内系统资源消耗情况记录下来,这时可以使用命令在远程窗口执行命令:

./nmon/ nmon_x86_rhel5  -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=h*3600/s,比如要监控10小时,每隔30秒采样一次,则c=10*3600/30=1200

该命令启动后,会在nmon所在目录下生成监控文件,并持续写入资源数据,直至360个监控点收集完成——即监控1小时,这些操作均自动完成,无需手工干 预,测试人员可以继续完成其他操作。如果想停止该监控,需要通过“#ps –ef|grep nmon”查询进程号,然后杀掉该进程以停止监控。

3.4.3 定时任务

    除配合性能测试的短期监控,我们也可以实现对系统的定期监控,作为运营维护阶段的参考。定期监控实现如下:

1) 执行命令:#crontab  –e

2) 在最后一行添加如下命令:
0 8 * * 1,2,3,4,5  /nmon/nmon_x86_rhel5  -f -N -m /nmon/log  -s 30 -c 1200
表示:
周一到周五,从早上08点开始,监控10个小时(到18:00整为止),输出到/nmon/log

4. Nmon监控结果介绍

4.1  生成结果文件

     通过后台监控和定期监控,我们可以得到扩展名为nmon的监控文件,这些文件记录着系统资源的数据,需要配合分析工具(nmon analyser)进行解读。

1) 使用FTP工具从服务器上取下生成结果文件/nmon/log/sjfx212_120318_1723.nmon到本机。

2) 打开nmon_analyser.zip 包下的nmon analyser v33g.xls 文件,点击Analyse nomn data按钮,选择之前get下来的sjfx212_120318_1723.nmon文件。

Excel可能禁止运行宏了,点“安全警告旁边的选项”,允许运行宏:

       

3) 生成分析结果文件sjfx212_120318_1723.nmon.xlsx,并生成统计图,直观显示系统资源情况。

4.2  主要性能参数介绍

u 系统汇总(对应excel标签的‘SYS_SUMM’):其中蓝线为cpu占有率变化情况;粉线为磁盘IO的变化情况。

u 磁盘读写情况汇总(对应excel标签的‘DISK_SUMM’): 其中蓝色为磁盘读的速率KB/sec;紫色为磁盘写的速率KB/sec。

u 内存情况汇总(对应excel标签的‘MEM’): 曲线表示内存剩余量(MB)

4.3  页面介绍

简单介绍生成结果的各个页面:

1) 系统汇总页面:对应标签页(SYS_SUMM)

页面显示项主要有主机名,执行日期,系统cpu使用情况(蓝线),系统I/O情况(粉红线),其中坐标左纵轴为系统cpu(user%+sys%)使用率,横轴为运行时长(下图为一个小时),右纵轴为系统磁盘传输(Disk xfers),坐标下侧为统计信息:系统I/O情况(一个周期内的平均值、最大值、出现最大值的时间),系统CPU使用情况。


选项


说明


备注


User%


用户进程时间在CPU 开销时间百分比


如果一个CPU 被充分使用,利用率分类之间均衡的比例应该是:

65% - 70% User Time

30% - 35% System Time

0% - 5%   Idle Time


Wait%


所有进程线程被阻塞等待完成一次IO 请求所占CPU 开销idle的时间百分比


Sys%


线程和中断在CPU 开销时间百分比


Idle%


CPU 空闲时间的百分比


CPU%


CPU 利用率的百分比

 

注释:

如果系统CPU有IO wait存在,说明可能IO或内存方面存在瓶颈,其中主要导致IO Wait的主要原因如下:

ü 内存不够而引起频繁的的数据交换,导致数据存取存在交换空间的 I/O瓶颈

ü 硬盘数据分布不合理

2) 系统信息:标签页(AAA)

页面信息主要包括:执行命令,主机CPU数(4),操作系统内核版本信息,主机名等信息。

 

3) 系统详细信息:标签页(BBBP)

 页面信息主要包括:操作系统版本,主机磁盘信息,主机CPU型号、主频信息,内存信息,网卡信息等。

 

4) CPU使用情况:标签页(CPU_ALL,CPU_SUMM,CPU001,CPU002,CPU003,CPU004)

主机CPU使用情况汇总以及单颗CPU的运行情况。

 

 

5) 磁盘读写情况汇总:标签页(DISK_SUMM,DISKBSIZE,DISKBUSY,DISKREAD,DISKWRITE,DISKXFER)

 磁盘的读、写及I/O统计信息,系统各磁盘分区的读写情况。其中DISKBUSY页主要反映系统本地磁盘使用,DISK_SUMM包括本地和存储(ESS, EMC, FASt及HDS)上所有磁盘使用情况。

 

 

 

6) 内存使用情况:标签页(MEM)

系统内存空闲、使用,swap、cached等统计信息。

 

7) 系统网络情况:标签页(NET,NETPACKET)

反映系统的网络运行情况,系统各个网络适配器读写的数据包数

 

8) 系统进程:标签页(PROC)

反映系统运行线程及等待切换的线程平均数。其中RunQueue - 每个处理器应该运行队列不超过1-3个线程。

 

 

9) 活动虚拟内存总量:标签页(VM)

Linux操作系统特有指标,主要包括系统/proc/vmstat文件中信息,两张图片主要显示系统分页文件(pagefile)和swap分区运行情况。如果系统总是存在大量换出页(pgpgout/s)KB数,说明系统需要更多内存。

 

 

10) 页式调度:标签页(PAGE)

记录系统(AIX)页式调度的情况。这一栏主要记录系统换页(paging)情况和页面扫描:自由比率(page scan:free ratio)。其中系统换页频率应该不大于5次/秒,而当页面扫描:自由比率持续大于4时,需要重点关注下系统内存和分页空间的使用情况。

 

说明:

大量的内存交换操作会极大地影响系统的性能,尤其是在当数据库文件创建在文件系统上时(JFS and JFS2)。在这种情况下经常访问的数据,即在SGA中存在,也同样在文件的缓存中存在。这种相同的数据在内存中缓存两次的情况,会降低内存的使用效率,从而使内存频繁进行交换操作,造成系统的I/O瓶颈,降低整个系统的性能。

11) 采集时间:标签页(ZZZZ)

记录nmon工具采集系统信息的时间点。

 

5. Nmon监控案例介绍

本节介绍通过nmon工具发现系统性能下降问题的常见现象和处理流程。

5.1  常见现象和产生原因

性能下降(Performance Degradation),主要是指系统的性能随时间而逐渐下降(这里假定在系统性能下降的过程中系统的负载状况没有明显变化)。系统运行过程中占用的CPU或内存随时间增加也属于广义的性能下降问题。

在生产环境中,通常由终端客户最先感觉到并报告性能下降问题。所以狭义的性能下降问题主要是指系统运行指标随时间变化,比如吞吐率随时间下降或页面响应时间随时间上升,或者两者兼而有之。

下面列举一些引起性能下降问题的原因:

ü 应用程序资源使用问题。主要是内存使用问题,即由于应用服务器的内存碎片问题或内存泄漏问题,导致垃圾回收的开销随时间增大。也有可能是因为磁盘临时文件积累造成磁盘访问开销增大。

ü 应用程序设计问题。由于应用程序的设计存在可扩展性或可靠性问题,导致运行开销随时间或业务对象的积累而增大。

ü 数据库访问问题。该问题又可以分为许多类型,如调优参数问题、表结构或索引设计问题、垃圾数据问题等。其共同特点是导致应用程序利用特定操作访问数据库的开销随时间而增大。

ü 服务器软件资源使用问题。虽然可能性很小,但是应用服务器、数据库服务器等服务器程序也是软件程序,也有可能存在性能下降问题。这些服务器程序在自身测试过程中可能遗漏了某些性能问题,而在用户特定的执行状况下触发了这些问题,结果导致这些服务器程序使用的操作系统资源泄漏而出现性能下降问题。

ü 测试用例设计问题。性能测试中有可能发现一些“假”的性能下降问题。比如测试用例设计时假设在测试执行过程中系统负载保持恒定,但实际的测试用例实现导致系统负载或特定页面的处理内容随时间增多,也可能导致测试工具的测试报告中出现性能下降问题。

5.2  实例介绍

5.2.1 示例一

 

5-1  nmon操作系统监视汇总信息图

由此信息图可发现在12小时测试进行过程中,系统的磁盘传输(Disk xfers)逐渐增大,与此同时系统CPU占用率逐渐下降。进一步检查单个CPU的使用情况,发现1号CPU的Wait状态占用率明显增大,如图5-2所示。这说明CPU占用率逐渐下降是由于等待磁盘I/O引起的。

 

5-2  nmon单个CPU使用情况图

接下来分析磁盘传输汇总信息,如图5-3所示,可以看出磁盘写数据量没有明显增加,但是磁盘读数据量明显随时间而增加。

 

5-3  nmon磁盘传输汇总情况图

凭磁盘传输汇总信息,在排除由应用服务器读取导致的性能下降问题后,基本可以肯定不断增加的磁盘读取操作是由数据库引起的。

随后,分析DB2的快照监视器的监视结果,可以发现DB2的缓冲池(Buffer pool)的数据和索引物理读(physical read)的比例非常高。如下例所示:

Buffer pool data logical reads             = 5502388

Buffer pool data physical reads            = 430671

Buffer pool temporary data logical reads   = 0

Buffer pool temporary data physical reads  = 0

……

可以看到缓冲池的物理读比例(即缓冲池不命中率)高达7%,这远远大于1%的警戒线。而且物理读比例有随时间增加的趋势(通过不同时间的快照信息对比发现)。

至此可以怀疑性能下降问题是由于DB2的缓冲池配置参数设置不当引起的。考察数据库配置参数信息发现,该数据库的BUFFPAGE参数值为10000。与该测试用例使用的数据规模相比,这个参数值明显偏小。于是将BUFFPAGE参数值增大10倍,变为100000,重新运行性能测试,发现性能下降问题基本消失。

5.2.2 示例二

本实例为通过nmon监控河北税源管理平台数据仓库收集的数据。对照nmonanalyser工具生成结果进行分析。

1) 收集服务器基本信息

 

 

 

       通过以上数据可以知道河北数据仓库服务器基本配置信息如下:

ü 主机名:HE_SSGLY_DB_01

ü 操作系统版本:AIX 5.3.0.44 build 5300-04

ü 操作系统内核:HW-type=CHRP=Common H/W Reference Platform Bus=PCI LPAR=Dynamic Multi-Processor 64 bit

ü 主机型号:IBM p5 595 (9119-595)

ü 网络配置:IP Address: 75.16.16.191 Sub Netmask: 255.255.248.0 Gateway: 75.16.16.100

ü 主机存储:EMC存储

ü 主机物理内存:49152 MB

ü 网卡信息:2块网卡 速率为1024M/S

2) 文件系统使用情况

 

 

       通过以上数据可以知道河北数据仓库服务器文件系统相关信息如下:

ü 文件系统分区大小及使用情况

ü 文件系统挂载点信息

ü 文件系统类型为JFS2(Journaled File System 2)文件系统

3) 系统资源使用情况

 

      观察上图,可以发现服务器cpu使用率较高的时段为8:00-11:30、14:00-17:20,而系统I/O开销较高的时段均出现在21:00-次日5:50。以上信息基本符合服务器晚上进行数据ETL处理、白天工作时段多进行平台一般事务处理的情况。进一步观察服务器cpu使用情况:

 

 

 

     发现CPU利用率较高均为用户进程,单独查看CPU-11注意到22:00-0:00这个时段内CPU的Wait状态占用率明显增大, user状态占用率却很低,此时系统I/O明显升高,说明这个时段内有大量磁盘I/O发生,CPU占用率逐渐下降是由于等待磁盘I/O引起的。实际情况中,这个时段服务器正在进行ETL数据处理,的确有大量数据传输和磁盘读写发生。

 

5.2.3 示例三

     介绍个利用nmon进行系统实时监控的例子。

     把nmon脚本上传到服务中,直接运行即可,执行命令如下:#./nmon或者#/tmp/nmon/nmon

     以下是aix5.3下使用nmon的一些截图:

 

   分别输入c、t、n、m,可以了解系统cpu,内存,消耗资源最高的线程的使用情况。

 

时间: 2024-08-07 06:53:24

【OS】NMON的简介和使用的相关文章

Mac OS X使用简介

1. Mac OS X中的最后一个"X"是罗马数字且正式的发音为"十"(ten),接续了前面的Mac OS 9, 单击左上角苹果图标->关于本机,可以查看本机装的操作系统版本号. 2.下面一排图标叫Dock(工具条),相当于windows中的快速启动,可能通过"苹果图标"->"Dock"隐藏和显示.图标下面的白点代表这个程序还在运行中,没有完全关闭,要通过右键菜单完全退出. 3.Finder----我的电脑:saf

python中os.path模块简介

1.python中获取当前工作目录 curDir = os.getcwd() os.getcwd()返回的是执行命令时所在的目录,而不是脚本本身所在的目录 2.os.path os.path.abspath(path)  #返回绝对路径 os.path.split(path)     #将path分割成目录和文件名二元组返回 os.path.dirname(path)  #返回path的目录.其实就是os.path.split(path)的第一个元素 os.path.basename(path)

Python连载11-Python中os.path模块简介

一.os.path(和路径相关的木块) 1.函数:abspath() (1)含义:将路径转化为绝对路径的形式(absolute path) (2)格式:os.path.abspath(相对路径) (3)注意:点代表当前目录,双点代表当前父目录 (4)返回值:路径的绝对路径形式. print(abc.abspath(".")) basename() (1)用法:获取路径中的文件名部分 (2)格式:os.path.basename(路径) (3)返回值:文件名字符串 (4)总结:其实就是把

ios-(6)Mac os X

Mac os X 系统简介 * 苹果公司专门为苹果电脑设计的操作系统. * 以坚如磐石的UNIX为基础,既简单易用且功能强大. * x 是一个罗马数字正式的发音位"十"(ten),连续了先前的Mac OS 8 和Mac os 9的编号. * 在此操作系统下,可以使用苹果提供的开发工具XCode开发Mac OS X和ios应用程序. 版本 * 2001年3月24日 OS X 10.0 (内部代为号猎豹) * 2001年9月25日 OS X v10.1(代号为 Puma) * 2002年8

系统性能监测(使用nmon、nmonanalyser)

系统性能监测使用工具: l系统性能监测使用的主要监测工具是:nmon(AIX6.1及以上版本系统自带). l系统性能监测使用的主要分析工具是:nmonanalyser. NMON工具简介: NMON工具是IBM提供的免费的在AIX与各种Linux操作系统上广泛使用的监控与分析工具.该工具可将服务器的系统资源耗用情况收集起来并输出一个特定的文件,并可利用excel分析工具nmonanalyser进行数据的统计分析.针对不同的操作系统版本,nmon有相应版本的程序. NMON命令格式实例详解: nm

运维采集技术分享: 通过WMI监控NAT后的Windows系统

1.Windows OS和WMI简介 随着互联网技术的飞速发展,我们对于IT业务系统的服务能力要求越来越高.根据Gartner统计2017年1季度全球服务器出货量超过125亿美金,正在运行支撑各种业务的服务器数量更是庞大.这些服务器中有超过50%的服务器正在使用Windows OS.这些Windows OS支撑了各种大中小型的业务应用,支撑着人们工作.生活等各项活动的开展.那么如此庞大的系统,我们如何有效的监控和管理呢?微软为Windows OS提供了一个有效的监控工具WMI. 图 1-1 全球

计算机发展史

long long ago 老祖宗的算盘 ...数百年之后.... 1623 1623年,德国科学家契克卡德(Wilhelm Schickard)制造能够进行6位数的加减运算,是为了帮助自己的挚友天文学家开普勒(kepler)做机械运算,但是这个发明很晚世人发现. 1642 法国科学家帕斯卡为了帮助父亲费力的计算税率税款,19岁的帕斯卡研发出一种系列齿轮组成的,外壳用黄铜材料制作,长20英寸宽4英寸高3英寸的厂方盒子计算器,面板上有一列显示数字的小窗口,旋紧发条后才能转动, 用专用的铁笔来拨动转

OS开发UI篇—CALayer简介

OS开发UI篇-CALayer简介 一.简单介绍 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView. 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层 @property(nonatomic,readonly,retain) CALayer *layer; 当U

Firefox OS简介

Firefox OS系统架构框图 一些Firefox相关的术语简介: B2G Boot to Gecko 的简称. Boot to Gecko Firefox OS 操作系统的工程代号. 因为在该项目拥有官方名称之前B2G已经使用了很久的原因,它经常用于指代 Firefox OS. Firefox OS FIrefox OS 基本上是指 Mozilla及合作伙伴应用在 B2G上的品牌和服务支持, 最终将创建一个发布的产品. Gaia Firefox OS 平台的用户接口层.屏幕启动时渲染到屏幕上