linux使用nmon监控、分析系统性能

 

一、概述

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

nmon所记录的数据包含以下一些方面(也是我们在寻找问题过程中所关注的资源点):

  ·cpu占用率

  ·内存使用情况

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

  ·文件系统的使用率

  ·网络I/O速度、传输和读写比率、错误统计率与传输包的大小

  ·消耗资源最多的进程

  ·计算机详细信息和资源

  ·页面空间和页面I/O速度

  ·用户自定义的磁盘组

  ·网络文件系统

另外在AIX操作系统上,nmon还能监控到其他的一些信息,如异步I/O等。

二、下载安装nmon

1、下载安装包:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download
选择下载相应的版本,我下载的是
nmon16d_x86.tar.gz。解压后里边有很多版本的nmon,我用的是nmon_linux_x86_64,亲测可用。
2、直接在window中将解压好的nmon_linux_x86_64通过sftp上传到要监控的linux系统中对应目录下
3、执行授权命令:
# chmod +x  nmon_x86_64_linux
4、运行./nmon_x86_64_linux,便可进入nmon的监控界面,如下图:

三、实时监控

在完成配置后,只需要“#./nmon”命令即可运行程序,通过一些快捷键调取关心的系统资源指标进行显示,如按键“C”可以查看CPU相 关信息;按键“D”可以查看磁盘信息;按键“T”可以查看系统的进程信息;“M”对应内存、“N”对应网络等等,完整的快捷键对应内容可以通过帮助(按键 “H”)查看,可以显示Linux系统CPU、内存、进程信息,包括了CPU的用户、系统、等待和空闲状态值,可用内存、缓存大小以及进程的CPU消耗等详细指标。该种方式显示信息实时性强,能够及时掌握系统承受压力下的运行情况,每颗CPU利用率是多少、内存使用多少、网络流量多少、磁盘读写……这些数据均是实时刷新,一目了然。

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

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

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

键入“h”查看帮助信息

四、nmon数据采集

4.1数据采集

为了实时监控系统在一段时间内的使用情况并将结果记录下来,我们可以通过运行以下命令实现:

  #./nmon_x86_64_linux -f-t -s 30 -c 180 -m /home/

  n -f:按标准格式输出文件:<hostname>_YYYYMMDD_HHMM.nmon;

  n -t:输出中包括占用率较高的进程;

  n -s 30:每30秒进行一次数据采集

  n -c 180:一共采集180次

-m
生成的数据文件的存放目录。

输入命令回车后,将在/home目录生成一个hostname_timeSeries.nmon的文件,如果hosname为test1,生产的文件为:LS-HDP-MH-VM-173-188_161108_1412.nmon。

如果想停止该监控,需要通过“#ps –ef|grep nmon”查询进程号,然后杀掉该进程以停止监控。

通过sort命令可以将nmon结果文件转换为csv文件:

#
sort -A LS-HDP-MH-VM-173-188_161108_1412.nmon> LS-HDP-MH-VM-173-188_161108_1412.csv
;执行完sort命令后即可在当前目录生产LS-HDP-MH-VM-173-188_161108_1412.csv文件。

4.2生成图形化结果

为了分析nmon监控获得的结果,IBM还提供了相应的图形化分析工具nmon_analyser,通过nmon analyser.xls工具可以把监控的结果文件转换成excel文件,方便分析系统的各项资源占用情况。

下载nmon_analyser(生成性能报告的免费工具):

https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power%20Systems/page/nmon_analyser

 nmon analyser.xls工具的使用方法如下:

 (1)打开nmonanalyser.xls工具;

 (2)调整excel宏安全性:工具-宏-安全性

 (修改安全级别与可靠发行商)(选择)安全级别:低

 (勾上)信任所有安装的加载项和模板(勾上)信任对于“Visual Baisc项目”的访问

 (3)修改完后,确定-关闭nmon
analyser.xls,重新打开;

 (4)点击Analyse nmondata按钮,加载之前下载的LS-HDP-MH-VM-173-188_161108_1412.nmon文件。

  以下是分析结果的截图:

五、结束nmon运行

nmon运行本身是会消耗系统资源,如需关闭nmon,直接kill掉

#
ps -ef | grep nmon      (得到pid)

#
kill -9 pid          (安全kill)

六、定时任务

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

1)   执行命令:#crontab -e

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

七、nmon关键指标列表

4.1
系统汇总(对应excel标签的‘SYS_SUMM’)
蓝线为cpu占有率变化情况;
粉线为磁盘IO的变化情况;
4.2磁盘读写情况汇总(对应excel标签的‘DISK_SUMM’)
蓝色为磁盘读的速率KB/sec
紫色为磁盘写的速率KB/sec
4.3内存情况汇总(对应excel标签的‘MEM’)

linux使用nmon监控、分析系统性能的更多相关文章

  1. Linux的nmon监控结果分析文件中网络分析NET

    1.首先,使用# ifconfig查看Linux系统中的网卡名称,有的是eth0,有的是em1,以查看结果为准,下图为em1 2.先试试Linux系统中有没有安装ethtool工具,没有的话,下载et ...

  2. nmon监控分析

    一.下载软件安装 wget http://sourceforge.net/projects/nmon/files/nmon_linux_14i.tar.gz tar xf nmon_linux_14i ...

  3. Linux 监控分析

    一.硬件基础 Cpu   逻辑的处理.计算.判断 现代分时多任务操作系统对 CPU 都是分时间片使用的:比如A进程占用10ms,然后B进程占用30ms,然后空闲60ms, 再又是A进程占10ms,B进 ...

  4. 【转】使用nmon监控suse或linux操作系统

    目的:使用nmon监控操作系统的内存,CPU等症状 nmon介绍:nmon 工具可以为AIX和Linux性能专家提供监视和分析性能数据的功能,其中包括CPU,内存,IO,free空间,页面空间页面速度 ...

  5. Linux操作系统监控分析

    性能分析点:1. 负载机2.网络传输3.硬件4.应用程序线程池5.数据库连接池6.代码业务逻辑7.数据库sql执行时间8.jvm(GC) 操作系统硬件:cpu:计算.逻辑处理:CPU的颗粒数越多,CP ...

  6. Linux性能监控分析命令(五)—free命令介绍

    性能监控分析的命令包括如下:1.vmstat2.sar3.iostat4.top5.free6.uptime7.netstat8.ps9.strace10.lsof 命令介绍:free命令是监控Lin ...

  7. NMON监控linux性能

    NMON监控linux性能 一.下载nmon压缩包,下载地址:http://download.csdn.net/download/fhqsse220/6699865 二.安装方法: 1.将nmon_l ...

  8. nmon监控及简要分析

    性能测试中,各个服务器资源占用统计分析是一个很重要的组成部分,通常我们使用nmon这个工具来进行监控以及监控结果输出. 一. 在监控阶段使用类似下面的命令 ./nmon -f write_3s_20v ...

  9. Linux性能分析——分析系统性能相关的命令

    Linux性能分析——分析系统性能相关的命令 摘要:本文主要学习了Linux系统中分析性能相关的命令. ps命令 ps命令用来显示系统中进程的运行情况,显示的是当前系统的快照. 基本语法 ps [选项 ...

随机推荐

  1. C语言新手写扫雷攻略4

    今天写的是游戏过程的函数,基本的算法前面都解释过了,今天是实现基本的功能 补充一下前面需要用到的头文件 #include<conio.h> //_kbhit() #include<s ...

  2. Go语言中接口组合的实现方法

    在Go语言中,可以在接口A中组合其它的一个或多个接口(如接口B.C),这种方式等价于在接口A中添加接口B.C中声明的方法. 代码如下: //接口中可以组合其它接口,这种方式等效于在接口中添加其它接口的 ...

  3. http://elasticsearch-py.readthedocs.io/en/master/api.html

    API Documentation All the API calls map the raw REST api as closely as possible, including the disti ...

  4. unittest框架学习笔记四之report

    # coding=utf-8'''created:2018/3/29 author:star project:test report'''# import time,os# from selenium ...

  5. 在Windows的控制台和Linux的终端中显示加载进度

    Windows中 #include <stdio.h> #include <windows.h> int main() { ;//任务完成总量 int i; ; i < ...

  6. Delphi多线程详解

    (整理自网络) Delphi多线程处理 1-1多线程的基本概念 WIN 98/NT/2000/XP 是个多任务操作系统,也就是:一个进程可以划分为多个线程,每个线程轮流占用CPU 运行时间和资源,或者 ...

  7. 3.3 理解 Redux 中间件(转)

    这一小节会讲解 redux 中间件的原理,为下一节讲解 redux 异步 action 做铺垫,主要内容为: Redux 中间件是什么 使用 Redux 中间件 logger 中间件结构分析 appl ...

  8. ALSA 更改默认声卡

    用 aplay -l 看一下各声卡的配置信息 创建 /etc/asound.conf,根据 aplay -l  的输入,选择需要的声卡信息,按如下格式添入,即可更改默认声卡 defaults.pcm. ...

  9. Java 序列化和反序列化(二)Serializable 源码分析 - 1

    目录 Java 序列化和反序列化(二)Serializable 源码分析 - 1 1. Java 序列化接口 2. ObjectOutputStream 源码分析 2.1 ObjectOutputSt ...

  10. leetcode.哈希表.594最长和谐子序列-Java

    1. 具体题目: 和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1.现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度. 示例 1: 输入: [1,3,2,2,5 ...