zoukankan      html  css  js  c++  java
  • 性能测试-11.Linux服务器使用NMON监控指标

    一、NMON使用

    首先下载nmon软件http://nmon.sourceforge.net/pmwiki.php?n=Site.Download,打开这个网站下载符合自己操作系统的硬件的相关nmon版本的软件到linux本地。

    然后解压软件,然后会到解压出来好多类型不同平台的二进制nmon,这里的系统是nmon_x86_rhel52,所以给nmon_x86_rhel52文件执行权限,并且为了方便我们对其重命名。

    [root@localhost source]# chmod u+x nmon_x86_rhel45

    [root@localhost source]# mv nmon_x86_rhel45 nmon

    [root@localhost source]# ./nmon

    然后用NMON进行数据采集

    nmon -f -s 10 -c 60

    -f 表示生成的数据文件名中有时间;-s 10 表示每 10 秒采集一次数据;-c 60 表示采集 60 次,10*60=600 秒,

    生成localhost_171128_1423.nmon文件,然后通过nmon analyser v50_5.xlsm转换成localhost_171128_1423.nmon.xlsx文件查看

    二、NMON中的各项参数指标:

    1、SYS_SUMM:显示当前服务器的总体性能情况

    Total System I/OStatistics:
    Avg tps during an interval:显示采集间隔内磁盘平均I/O次数,该值等于Sheet DISK_SUMM中IO/sec列的平均值。
     Max tps during an interval:显示采集间隔内磁盘最大I/O次数,该值等于Sheet DISK_SUMM中IO/sec列的最大值。
     Max tps interval time:显示磁盘最大I/O所在时间点。
    Total number of Mbytes read:显示采集间隔内磁盘读的总兆字节数,可能是nmon的bug,该值并不准确,并且使用LVM划分的虚拟磁盘可能会存在重复统计。
    Total number of Mbytes written:显示采集间隔内磁盘写的总兆字节数,该值并不准确,理由同上。
    Read/Write Ratio:显示Total number of Mbytes read/ Total number of Mbytes written的值。 实时读写比率
    IO/sec:仅显示磁盘IO/sec的图,不包括Network的I/O。   每秒钟输出到物理磁盘的传输次数


    CPU:
    Users%:显示采集间隔内所有CPU在User Mode下的Time占比(Avg、Max)。
    Sys%:显示采集间隔内所有CPU在System Mode下的Time占比(Avg、Max)。
    Wait%:显示采集间隔内所有CPU处于空闲且等待I/O完成的时间比例(Wait%是CPU空闲状态的一种,当CPU处于空闲状态而又有进程处于D状 态(不可中断睡眠)时,系统会统计这时的时间,并计算到Wait%里),Wait%不是一个时间值,而是时间的比例,因此在同样I/O Wait时间下,服务器CPU越多,Wait%越低,它体现了I/O操作与计算操作之间的比例。对I/O密集型的应用来说一般Wait%较高,且 Sheet PROC中Blocked也较高,这时需关注是什么导致了过多的进程等待。
     Idle%:显示采集间隔内所有CPU处于空闲Time的占比(Avg、Max)。
    CPU%:显示采集间隔内所有CPU的user%+system%。

    2、 AAA
    显示当前服务器基本信息,如操作系统版本,当前LPAR名,采集时间和次数等如下图


    3.        StrayLines
    显示本次nmon分析文件中未生成的采集值。
    4.        BBBP
    显示当前服务器的基础资源信息,当前服务器操作系统是cent os版本。
    MemTotal:显示当前服务器物理内存大小,本服务器有8063180 KB≈7874 MB左右。
    MemFree:显示当前服务器的空闲内存大小,本服务器有5052336 KB≈4934 MB左右。
    Buffers:显示当前服务器Buffer(在内存中要写到磁盘上的)缓存的大小,本服务器有459108 KB≈448 MB左右,注意,这里的数值仅是采集初期的静态值,具体Buffer的变化还需要看Sheet MEM。
     Cached:显示当前服务器Cache缓存的大小(从磁盘读取到内存的),本服务器有1032572 KB≈1008 MB左右。,这里的数值仅是采集初期的静态值,具体Buffer的变化还需要看Sheet MEM。
    SwapCached:显示当前服务器Swap空间已缓存的大小,本服务器尚未使用到Swap空间。
    SwapTotal:显示当前服务器Swap空间大小,本服务器有8385532 KB≈8189 MB左右。
    SwapFree:显示当前服务器Swap空闲空间大小,本服务器Swap空间都空闲。
    由于执行nmon时所属系统组权限不同,因此BBBP里磁盘的信息可能会缺失,如截图一是root权限执行nmon生成文件后显示的磁盘信息,可以看到每个磁盘的大小及磁盘下的分区用途。
    5.        CPU_ALL
    显示当前服务器所有CPU在采集时间段内的利用率,按时间及User%、System%、Wait%显示。
    当前服务器共有4颗CPU(Core)8核心。
    一般情况下CPU利用率里User%应占70%左右,Sys%应占30%左右,如果Sys%或Wait%占比等于或超过了User%则应该关注是什么引起了过多的系统消耗,可能是大量的Disk或Network I/O。
    如下图,这个项目随着并发的增加,应用进程对CPU的消耗都增加在Wait%上,经排查是由于NFS读写遇到瓶颈导致:
    6.        CPU_SUMM
    显示当前服务器所有CPU的利用率,当前服务器共有4个CPU(Core),每个CPU负载有所不同。
    7.        DISK_SUMM
    按采集时间显示所有磁盘和分区的Read/Write的速率(KB/s)和所有磁盘和分区的I/O率。某一采集时间点的IO/sec等于Sheet DISKXFER中该时间点上所有磁盘和分区的IO/sec之和。因此,这一时间点上的I/O值是重复的!另外,本Sheet中的I/O不包括NFS里的 I/O。


    如 上图的WAvg按nmon Guide中的说法是为了去掉采集值中的零值以便贴近真实平均值,但WAvg的公式(对计算列中所有值取平方后加合,再除以列中所有值之和)却不是单纯的 去掉零值,这里可以理解为WAvg比Avg更贴近资源消耗的均值,因此以后所有资源Sheet中都推荐关注WAvg。
    IBM Redpaper《Linux Performance and Tuning Guidelines》中介绍Linux的I/O子系统架构如下:
    nmon(包括iostat)对系统I/O的指标截取大部分来自/proc/diskstats,而这些值来自block layer层,LVM里的Logical Volume会“visible as a standard block device”,因此真实的磁盘,LVM的逻辑卷,分区等在这里都会显示,在nmon计算总值时会被重复统计。
    Disk Read/Write KB是同一采集时间点下Sheet DISKREAD、DISKWRITE里该行(所有磁盘和分区)数值之和,必然包括了重复值,例如某一时刻sda磁盘共write 1000 KB,其中sda1分区write 700 KB,sda3分区write 300 KB,这一时刻Disk Write应是1000 KB,但这里却会重复统计分区数值,导致显示为Disk Write 2000 KB。Disk I/O也存在同样的问题!
    还需注意一点,部分nmon生成文件里图中标题指标为kb(小写)/s,但实际统计的却是KB(大写)/s。

  • 相关阅读:
    Working with WordprocessingML documents (Open XML SDK)
    How to Choose the Best Way to Pass Multiple Models in ASP.NET MVC
    Azure:Manage anonymous read access to containers and blobs
    Convert HTML to PDF with New Plugin
    location.replace() keeps the history under control
    On the nightmare that is JSON Dates. Plus, JSON.NET and ASP.NET Web API
    HTTP Modules versus ASP.NET MVC Action Filters
    解读ASP.NET 5 & MVC6系列(6):Middleware详解
    Content Negotiation in ASP.NET Web API
    Action Results in Web API 2
  • 原文地址:https://www.cnblogs.com/cmnz/p/9191015.html
Copyright © 2011-2022 走看看