【Linux资源管理】一款优秀的linux监控工具——nmon

前端之家收集整理的这篇文章主要介绍了【Linux资源管理】一款优秀的linux监控工具——nmon前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

(一)nmon工具概述

nmon是以一个用来做linux服务器监控的工具,通过nmon,可以实现对以下参数的监控:

  --cpu使用率

  --内存、交换空间使用率

  --网络使用情况

  --磁盘I/O,读写速度

  --网络I/O速度,传输和读写速度

  --顶级进程,查看哪些应用程序占用的cpu较多

  --网络文件系统NFS

  --文件系统使用情况(类似df -h)

等。。。

(二)nmon工具的部署

STEP1.下载安装包:http://nmon.sourceforge.net/pmwiki.PHP?n=Site.Download。

注释:这里需要根据自己的linux类型及版本选择合适的安装包,我的redhat 6.6 linux信息为

lsb_release: Distributor ID : RedHatEnterpriseServer
lsb_release: Description    : Red Hat Enterprise Linux Server release 6.6 (Santiago)

,经测试,可以使用nmon16e_mpginc.tar.gz下面的“nmon_x86_64_rhel6”。

STEP2.解压安装包

[root@redhat6 ~]# mkdir /opt/nmon/nmon16e

[root@redhat6 nmon16e]# pwd
/opt/nmon/nmon16e
[root@redhat6 nmon16e]# tar -xzvf nmon16e_mpginc.tar.gz
...
nmon_x86_64_opensuse12
nmon_x86_64_rhel6
nmon_x86_64_rhel7
...

[root@redhat6 nmon16e]# ll
total 12540
-rw-r--r--. 1 root root 3456878 Aug 13 10:16 nmon16e_mpginc..gz
-rw-r--r--. 1 root root  383072 Apr 14  2016 nmon_arm_ubuntu15
-rwxr-x---. 342054 Apr 20   nmon_power_32_rhel6
-rwxr-x---. 353612 Apr  nmon_power_32_sles11
-rwxr-x---. 460578 Apr  nmon_power_64_kvm2
-rwxr-x---. 464824 Apr  nmon_power_64le_fedora22
-rwxr-x---.  nmon_power_64le_rhel6
-rwxr-x---.  nmon_power_64le_rhel7
-rwxr-x---. 540615 Apr  nmon_power_64le_ubuntu14
-rwxr-x---. 561504 Apr  nmon_power_64le_ubuntu15
-rwxr-x---. 551472 Apr  nmon_power_64le_ubuntu16
-rwxr-x---. 405725 Apr  nmon_power_64_rhel6
-rwxr-x---.  nmon_power_64_rhel7
-rwxr-x---. 418328 Apr  nmon_power_64_sles11
-rwxr-----. 347506 Apr  nmon_x86_64_centos6
-rwxr-----. 402146 Apr  nmon_x86_64_centos7
-rwxr-----. 345503 Apr  nmon_x86_64_opensuse11
-rwxr-----. 394628 Apr  nmon_x86_64_opensuse12
-rwxr-----. 2016 nmon_x86_64_rhel6
-rwxr-----.  nmon_x86_64_rhel7
-rwxr-----.  nmon_x86_64_sles11
-rwxr-----.  nmon_x86_64_sles12
-rwxr-----. 481776 Apr 2016 nmon_x86_64_ubuntu15

STEP3.找到与自己操作系统对应的文件,直接执行,即可进入nmon工具

[root@redhat6 nmom6e]# ./nmon_power_64_rhel6

 

(三)nmon实时监控

可以使用nmon进行实时监控,命令主要包括三种类型:

@H_301_200@
  • 帮助命令
  • 监控参数命令
  • 监控辅助命令
  • (3.1)帮助命令

    帮助命令为“H”,通过H命令可以了解到nmon的命令及作用

     

     (3.2)监控命令

     命令 英文解释 作用
     c | C

    c = cpu Util   ;      

    C = wide view   

    用于监控cpu的使用情况。针对每核cpu的四种状态进行统计

    User%:用户使用cpu百分比                 Sys% :系统使用cpu百分比

    Wait%:cpu(非空闲)等待百分比       Idle%:空闲cpu百分比

     m | L

    m = memory & swap  ;   

    L = Large(Huge) Page

    用于监控内存及交换空间的使用情况,还可以使用“L”命令查看Large(Huge) Page的使用情况
     n n = network

     监控每块网卡的I/O情况,主要监控

      --每秒接受/发送的流量

      --进出网卡的package的数量

      --进出流量(默认是2秒)

      --每秒接受/发送的流量的峰值

     d

    d = Disk I/O Graphs         

    D = Status

    监控磁盘I/O情况,通过这个命令,可以看到磁盘的繁忙程度,读写速度,用“D”可以看到更细节的磁盘I/O信息

    注:如果磁盘sda分区成为:sda1、sda2,那么会显示三个磁盘(sda、sda1、sda2)的信息。

     k k = kernel status & loadavg

    监控内核状态及负载,通过这个参数,可以了解到cpu具体消耗在哪些地方

    --全部cpu的使用负载cpu具体耗费在哪些地方也有所描述,不同于前面c或C对单个cpu统计

    --全部cpu的平均负载(1min、5min、15min)

     M M = MHz by thread & cpu cpu的时钟震荡频率 
     t

    t = Top Process,可选参数:

      --1:Priority/Nice/STate 

      --3:cpu

      --4:RAM

      --5:I/O

    顶级进程,可通过一下方式排序

    --1:基础方式,个人感觉不实用

    --3:按cpu消耗排序

    --4:按内存消耗排序

    --5:按I/O消耗排序

     g g = User Defined Disk Groups  用户定义的磁盘组信息
     r r = Resources OS & Proc

    操作系统资源信息,如:

    --cpu型号、cpu频率、每颗cpu的物理内核、超线程、虚拟cpu数量

    --操作系统版本:linux版本、redhat版本

     l l = long term cpu averages 长期的cpu负载监控。类似于windows任务管理器提供的cpu监控功能 
     V v = Virtual Memory 虚拟内存使用情况 
     N N = NFS  NFS网络文件系统I/O统计
     o o = Disk %Busy Map 通过MAP图,记录了哪些磁盘在使用,哪些磁盘未使用  
     j j = Filesystem Usage 文件系统的使用情况,类似于df -h
     u u = Top Process with command line Hit u twice to update 顶级进程,带有两次去更新数据操作
     G G = with -g switches Disk Graphs to disk groups only  不清楚具体作用,略

     

    (3.3) 辅助监控命令

    命令 英文解释 作用
     “+” (shift+“+”)  “+” = double the screen refresh time  屏幕刷新频率改为2倍
     “-”  “ - ” = half the screen refresh time   屏幕刷新频率改为一半
     “.” “.” = Display only busy disk & cpu   标出处于繁忙状态的cpu 
     0  0 = reset peak marks(">") to zero  将峰值重新设置为0 
     space space refresh screen now   空格键手动刷新屏幕 
     b  black & white mode  颜色显示为黑白模式 
     q q = Quit    退出 

     

    (四)nmon数据非实时分析

    除了实时分析外,还可以对数据进行收集,然后使用nmonchart、nmon_analyser工具将收集的数据进行绘图、展现。

    nmon收集数据命令如下:

    [root@redhat6 nmom6e]# ./nmon_x86_64_rhel6 -s1 -c300 -f -m /opt/nmon/nmon16e/file

    参数说明:
    -s1      : 每隔n秒抽样一次,这里为1s;
    -c300  : 采样次数,这里为300次;
    -f         : 按照标准格式输出文件名称:<hostname>_YYMMDD_HHMM.nmon
    -m       : 文件输出路径

    最终会生成一个nmon文件,在得到nmon文件后,可以使用nmonchart或者是nmon analyser来绘制图形。

    接下来介绍一下nmonchart与nmon_analyser的用法

    (4.1)使用nmonchart生成图形

    如上所述,nmon收集数据后,会形成一个*.nmon文件,我们可以使用nmonchart来生成html的服务器性能报表,

     nmonchart下载地址:http://nmon.sourceforge.net/pmwiki.PHP?n=Site.Nmonchart

     使用语法:nmonchart <nmon-file> <output-file>.html

    例子:使用nmonchart将redhat6_180814_1014.nmon转换为html图形报表

    [root@redhat6 ~]/opt/nmon/nmon16e/nmonchart/nmonchart  /opt/nmon/nmon16e/file/redhat6_180814_1014.nmon  /opt/nmon/nmon16e/file/redhat6_180814_1014.html 

     执行提示异常:-bash: ./nmonchart: /usr/bin/ksh: bad interpreter: No such file or directory

    解决办法:

    nmonchart需要使用ksh,这里提示没有在"/usr/bin/ksh"没有找到ksh,先确定系统有没有安装ksh。我的系统的redhat6.5,是安装了ksh的

    [root@redhat6 ~]# which ksh
    /bin/ksh

    既然有ksh,就不用安装了,直接修改nmonchart的shell即可,编辑nmonchart文件  vi /home/nmon/nmonchart31/nmonchart,修改第一行#!/usr/bin/ksh 为#!/bin/ksh。然后再执行转换命令就好了

    按理说打开html文档,可以看到官方提供的这样的图

     

    但是我打开之后,却是这样的。。。上面的按钮无法点开看到图像,以为是浏览器的原因,试了chrome、firefox、ie都不好使。一时没法搞定,暂放一下,再想想是哪里出了问题

     

    (4.2)使用nmon_analyser生成图形

     nmon analyser是一个excel工具,下载地址为:https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power+Systems/page/nmon_analyser 。

    下载解压之后,有2个文件,word文档是analyser的用户指南,对analyser工具的使用介绍得非常详细,excel就是我们用来做数据分析的工具了。

    初次使用时,一般会提示“宏已被禁用”,我们需要启用宏

     

    接着点击“Analyze nmon data”按钮,将需要分析的*.nmon文件加载到excel中,分析完成后,会生成一个新的excel,里面记录了服务器的各项参数信息,我们简单的看几个图形:

     

    图1:SYS_SUMM。这个图对一段时间内服务器的cpu、I/O进行了统计

     

     图2:DISK_SUMM。这个图反映了磁盘的读写速度以及I/O请求的数量

     

    图3 :cpu_ALL。反馈了cpu负载情况

     

    图4:cpu_SUMM。反馈了在真个时间段内每核cpu负载情况

     

     

    图5 图6 NET。反馈了整体网络I/O情况以及每个网卡的I/O的情况

     

    图7:cpu001:反馈了第1核cpu在监控时间段内的负载情况(这台服务器有48核心,这里只列出1核)

     

    (五)nmon工具使用心得

    nmon工具非常小巧,却又非常的强大,nmon大小不足1MB,却能够监控10多项重要参数,相对于其它的工具,例如iostat、top等,nmon显示的信息更多,对用户也更友好,作为一个linux的初级使用者,也能理解其中的大部分信息。

    由于linux和操作系统基础较差,目前我个人只能理解一部分参数,后续还需加强学习。此外nmonchart也未成功draw出图形,也需寻找原因。

    猜你在找的Linux相关文章