• linux下使用nmon工具对服务器性能进行检测


    1、nmon工具介绍:

    nmon工具是linux系统下可以对服务器及系统性能进行监测,CPU信息、CPU占用、内存使用、网卡使用等。最大的好处是此工具会将结果以列表的形式或者是模拟图形化的方式展示,不需要从繁琐的数据结果中抠字眼。nmon 工具还可以将相同的数据捕获到一个文本文件,便于以后对报告进行分析和绘制图形。输出文件采用电子表格的格式 (.csv)。

    2、安装nmon:

    将nmon4aix_11e.tar.gz放入linux系统某目录下,如:/opt下

    1 [root@localhost opt]# tar –xvzf nmon4aix_11e.tar.gz                    --解压缩压缩文件
    2 [root@localhost opt]# cd nmon4aix_11e                            --进入nmon目录
    3 [root@localhost nmon4aix_11e]# ./configure –prefix=/usr/local/nmon    --预编译工具程序
    4 [root@localhost nmon4aix_11e]# make&make install                    --链接程序及安装

    到此安装完毕

    3、使用方法:

    打开nmon,直接./nmon_x86_rhel52即可

    以上界面,可以看到,按对应的按键查看相应的信息。

    q : 停止并退出Nmon

    h : 查看帮助信息

    c : 查看 CPU 统计信息

    m : 查看内存统计信息

    d : 查看磁盘统计信息

    k : 查看内核统计信息

    n : 查看网络统计信息

    N : 查看 NFS 统计信息

    j : 查看文件系统统计信息

    t : 查看 Top 进程统计信息

    V : 查看虚拟内存统计信息

    v : 详细输出模式

    例如:

    如果你想查看 CPU 性能信息,可以直接按 c 键:

    如果你想查看 Top 进程统计信息,可以直接按 t 键:

    4、NMON后台监控系统性能并生成报表

    数据采集:

    运行带 -f 标志的 nmon 命令。有关详细信息,请参阅 nmon -h。但是作为示例,可以尝试运行下面的 nmon 命令来,告知 nmon 创建文件,并每隔 30 秒的时间进行一次数据收集,共采集 180 次(共计 1.5 个小时):

    nmon -f -s 10 -c 60

    -f 表示生成的数据文件名中有时间;

    -s 10 表示每 10 秒采集一次数据;

            -c 60 表示采集 60 次,10*60=600 秒,

    刚好是 10分钟的数据,这样运行一次这个程序就会生成一个采集 10分钟数据的文件。该行命令将在当前目录中创建输出文件,其名称为:<hostname>_date_time.nmon", hostname" 是这台主机的主机名。

    例如:

    1 [root@localhost source]# hostname
    2 linux_test
    3 [root@localhost source]# ./nmon -f -s 10 -c 60
    4 [root@localhost source]# ps -ef | grep nmon
    5 root 17815 1 0 08:22 pts/1 00:00:00 ./nmon -f -s 10 -c 60
    6 root 17888 6977 0 08:22 pts/1 00:00:00 grep nmon
    7 [root@localhost source]# ls linux_test_120724_0822.nmon
    8 linux_test_120724_0822.nmon

    当我们执行相关命令后,就在当前目录生成了一个以本主机名linux_test开头,以执行日期为规则,nmon结尾的文件,并且我们通过ps命令会看到相关的nmon进程,这里我们当10分钟过去以后我们会发现相关nmon进程会消失的。

    linux_test_120724_0822.nmon 就是我们所生成的数据文件,所有的信息都在linux_test_120724_0822.nmon记录,而且我们通过more命令后发现都是我们看不懂的一些文本,这就需要我们把其转化成我们能看懂的excel格式的文件。首先我们把linux_test_120724_0822.nmon文件导出到我们的windows本地。然后我们从http://www.ibm.com/developerworks/wikis/display/Wikiptype/nmonanalyser下载nmonanalyser软件到windows本地。打开解压缩文件后,我们会发现2个文件,一个是nmonanalyse的说明word格式的说明稳定,另一个是excel格式的nmonanalyse文件。

    我们这里所需要的就是excel格式问文件,我们双击打开。

    点解按钮导入文本结果即可。

    以下是效果的展示:

    附录:nmon分析文件各sheet含义

    sheet名称

    sheet含义

    SYS_SUMM

    系统汇总,蓝线为cpu占有率变化情况,粉线为磁盘IO的变化情况;

    AAA

    关于操作系统以及nmon本身的一些信息;

    BBBB

    系统外挂存储容量以及存储类型;

    BBBC

    系统外挂存储位置、状态以及描述信息;

    BBBD

    磁盘适配器信息;(包含磁盘适配器名称以及描述)

    BBBE

    包含通过lsdev命令获取的系统设备及其特征,显示vpaths和hdisks之间的映射关系;

    BBBG

    显示磁盘组详细的映射关系;

    BBBL

    逻辑分区(LPAR)配置细节信息;

    BBBN

    网络适配器信息;

    BBBP

    vmtune, schedtune, emstat和lsattr命令的输出信息;

    CPUnn

    显示执行之间内CPU占用情况,其中包含user%、sys%、wait%和idle%;

    CPU_ALL

    所有CPU概述,显示所有CPU平均占用情况,其中包含SMT状态;

    CPU_SUMM

    每一个CPU在执行时间内的占用情况,其中包含user%、sys%、wait%和idle%;

    DGBUSY

    磁盘组每个hdisk设备平均占用情况;

    DGREAD

    每个磁盘组的平均读情况;

    DGSIZE

    每个磁盘组的平均读写情况(块大小);

    DGWRITE

    每个磁盘组的平均写情况;

    DGXFER

    每个磁盘组的I/O每秒操作;

    DISKBSIZE

    执行时间内每个hdisk的传输块大小;

    DISKBUSY

    每个hdisk设备平均占用情况;

    DISKREAD

    每个hdisk的平均读情况;

    DISKWRITE

    每个hdisk的平均写情况;

    DISKXFER

    每个hdisk的I/O每秒操作;

    DISKSERV

    本sheet显示在每个收集间隔中hdisk的评估服务时间(未响应时间)

    DISK_SUMM

    总体disk读、写以及I/O操作;

    EMCBSIZE/FAStBSIZE

    执行时间内EMC存储的传输块大小;

    EMCBUSY/FAStBUSY

    EMC存储设备平均占用情况;

    EMCREAD/FAStREAD

    EMC存储的平均读情况;

    EMCWRITE/FAStWRITE

    EMC存储的平均写情况;

    EMCXFER/FAStXFER

     

    EMCSERV/FAStSERV

     

    ESSBSIZE

    本sheet记录在系统中每个vpaths下读写操作的平均数据传输大小 (blocksize) Kbytes

    ESSBUSY

    本sheet记录使用ESS系统的每个vpaths下的设备繁忙情况

    ESSREAD

    本sheet记录在系统中每个vpaths下读取操作的 data rate (Kbytes/sec)

    ESSWRITE

    本sheet记录在系统中每个vpaths下写入操作的 data rate (Kbytes/sec)

    ESSXFER

    本sheet记录在系统中每个vpaths下每秒的IO操作

    ESSSERV

    本sheet显示在每个收集间隔中vpaths的评估服务时间(未响应时间)

    FILE

    本sheet包含nmon内核内部的统计信息的一个子集,跟sar报告的值相同

    FRCA

     

    IOADAPT

    对于BBBCsheet每个IO适配器列表,包含了数据传输速度为读取和写入操作(千字节/秒)和I / O操作执行的总数量

    JFSFILE

    本sheet显示对于每一个文件系统中,在每个间隔区间正在被使用的空间百分比

    JFSINODE

    本sheet显示对于每一个文件系统中,在每个间隔区间正在被使用的inode百分比

    LARGEPAGE

    本图表显示Usedpages和Freepages随着时间的变化

    LPAR

     

    MEM

    本sheet主图上显示空闲实存的数量

    MEMUSE

    除 %comp参数外,本sheet包含的所有项都和vmtune命令的报告中一样

    MEMNEW

    本sheet显示分配的内存片信息,分三大类:用户进程使用页,文件系统缓存,系统内核使用页

    NET

    本sheet显示系统中每个网络适配器的数据传输速率(千字节/秒)

    NETPACKET

    本sheet统计每个适配器网络读写包的数量;这个类似于netpmon –O dd 命令

    NFS sheets

     

    PAGE

    本sheet统计相关页信息的记录

    PROC

    本sheet包含nmon内核内部的统计信息。其中RunQueue和Swap-in域是使用的平均时间间隔,其他项的单位是比率/秒

    PROCAIO

    本sheet包含关于可用的和active的异步IO进程数量信息.

    TOP

     

    UARG

     

    WLM sheets

     

    ZZZZ

    本sheet自动转换所有nmon的时间戳为现在真实的时间,方便更容易的分析



    nmon分析文件详细指标详解

    指标类型

    指标名称

    指标含义

    SYS_SUMM

    CPU%

    cpu占有率变化情况;

    IO/sec

    IO的变化情况;

    AAA

    AIX

    AIX版本号;

    build

    build版本号;

    command

    执行命令;

    cpus

    CPU数量;

    date

    执行日期;

    disks_per_line

     

    hardware

    被测主机处理器技术;

    host

    被测主机名;

    interval

    监控取样间隔;(秒)

    kernel

    被测主机内核信息;

    ML

    维护等级;

    progname

    执行文件名称;

    runname

    运行主机名称;

    snapshots

    实际快照次数;

    subversion

    nmon版本详情;

    time

    执行开始时间戳;

    user

    执行命令用户名;

    version

    收集数据的nmon版本;

    analyser

    nmon analyser版本号;

    environment

    所用excel版本;

    parms

    excel参数设定;

    settings

    excel环境设置;

    elapsed

    生成excel消耗时间;

    BBBB

    name

    存储磁盘名称;

    size(GB)

    磁盘容量;

    disc attach type

    磁盘类型;

    BBBC

    hdisknn

    各个磁盘信息、状态以及MOUNT位置;

    BBBD

    Adapter_number

    磁盘适配器编号;

    Name

    磁盘适配器名称;

    Disks

    磁盘适配器数量;

    Description

    磁盘适配器描述;

    BBBE

       

    BBBG

       

    BBBL

       

    BBBN

    NetworkName

    网络名称;

    MTU

    网络上传送的最大数据包,单位是字节;

    Mbits

    带宽;

    Name

    名称;

    BBBP

     

    vmtune, schedtune, emstat 和 lsattr命令的输出信息;

    CPUnn

    CPU nn

    执行间隔时间列表;

    User%

    显示在用户模式下执行的程序所使用的 CPU 百分比;

    Sys%

    显示在内核模式下执行的程序所使用的 CPU 百分比;

    Wait%

    显示等待 IO 所花的时间百分比;

    Idle%

    显示 CPU 的空闲时间百分比;

    CPU%

    CPU总体占用情况;

    CPU_ALL

    CPU nn

    执行间隔时间列表;

    User%

    显示在用户模式下执行的程序所使用的 CPU 百分比;

    Sys%

    显示在内核模式下执行的程序所使用的 CPU 百分比;

    Wait%

    显示等待 IO 所花的时间百分比;

    Idle%

    显示 CPU 的空闲时间百分比;

    CPU%

    CPU总体占用情况;

    Logical CPUs (SMT=on)

     

    CPU_SUMM

    CPU_SUMM

    CPU编号;

    User%

    显示在用户模式下执行的程序所使用的 CPU 百分比;

    Sys%

    显示在内核模式下执行的程序所使用的 CPU 百分比;

    Wait%

    显示等待 IO 所花的时间百分比;

    Idle%

    显示 CPU 的空闲时间百分比;

    DGBUSY

       

    DGREAD

       

    DGSIZE

       

    DGWRITE

       

    DGXFER

       

    DISKBSIZE

    Disk Block Size Hostname

    执行间隔时间列表;

    hdisknn

    磁盘传输速度时间间隔采样;(读和写的总趋势图)

    DISKBUSY

    Disk %Busy Hostname

    执行间隔时间列表;

    hdisknn

    每个磁盘执行采样数据;(磁盘设备的占用百分比)

    DISKREAD

    Disk Read kb/s Hostname

    执行间隔时间列表;

    hdisknn

    每个磁盘执行采样数据;(磁盘设备的读速率)

    DISKWRITE

    Disk Write kb/s Hostname

    执行间隔时间列表;

    hdisknn

    每个磁盘执行采样数据;(磁盘设备的写速率)

    DISKXFER

    Disk transfers per second Hostname

    执行间隔时间列表;

    hdisknn

    每秒钟输出到物理磁盘的传输次数;

    DISKSERV

       

    DISK_SUMM

    Disk total kb/s Hostname

    执行间隔时间列表;

    Disk Read kb/s

    每个磁盘执行采样数据;(磁盘设备的读速率)

    Disk Write kb/s

    每个磁盘执行采样数据;(磁盘设备的写速率)

    IO/sec

    每秒钟输出到物理磁盘的传输次数;

    EMCBSIZE/FAStBSIZE

       

    EMCBUSY/FAStBUSY

       

    EMCREAD/FAStREAD

       

    EMCWRITE/FAStWRITE

       

    EMCXFER/FAStXFER

       

    EMCSERV/FAStSERV

       

    ESSBSIZE

       

    ESSBUSY

       

    ESSREAD

       

    ESSWRITE

       

    ESSXFER

       

    ESSSERV

       

    FILE

    iget

    在监控期间每秒钟到节点查找例行程序的呼叫数

    namei

    在监控期间每秒钟路径查找例行程序的呼叫数(sar -a ).

    dirblk

    在监控期间通过目录搜索例行程序每秒钟扫描到的目录块数 (sar -a)

    readch

    在监控期间通过读系统呼叫每秒钟读出的字节数(sar -c)

    writech

    在监控期间通过写系统呼叫每秒钟写入的字节数(sar -c)

    ttyrawch

    在监控期间通过TTYs每秒钟读入的裸字节数(sar -y ).

    ttycanch

    终端输入队列字符 . 对于aix Version 4或者更后的版本这个值总是0

    ttyoutch

    终端输出队列字符. (sar -y ).

    FRCA

       

    IOADAPT

    Disk Adapter Hostname(KB/s)

    执行间隔时间列表;

    Disk Adapter_read

    磁盘适配器读速率;

    Disk Adapter_write

    磁盘适配器写速率;

    Disk Adapter_xfer-tps

    磁盘适配器传输速率;(该物理磁盘每秒的 IO 传输请求数量)

    JFSFILE

    JFS Filespace %Used Hostname

    执行间隔时间列表;

    file system/LV

    文件系统以及mount磁盘设备已使用空间百分比;

    JFSINODE

    JFS Inode %Used Hostname

    执行间隔时间列表;

    file system/LV

    文件系统以及mount磁盘设备的inode已使用空间百分比;

    LARGEPAGE

       

    LPAR

       

    MEM

    Memory Hostname

    执行间隔时间列表;

    Real Free %

    实际剩余内存百分比;

    Virtual free %

    虚拟剩余内存百分比;

    Real free(MB)

    实际剩余内存大小;(MB)

    Virtual free(MB)

    虚拟剩余内存大小;(MB)

    Real total(MB)

    实际内存总体大小;(MB)

    Virtual total(MB)

    虚拟内存总体大小;(MB)

    MEMUSE

    %numperm

    分配给文件页的实际内存百分比

    %minperm

    mixperm的缺省值约为20%的物理内存.通常会不断的运行,除非vmtune或rmss命令中使用收集

    %maxperm

    maxperm的缺省值约为80%的物理内存. 通常会不断的运行,除非vmtune或rmss命令中使用收集

    minfree

    空闲页面数的最小值

    maxfree

    空闲页面数的最大值 指定的vmtune命令或系统默认

    %comp

    分配给计算页的内存百分比,NMON分析器计算这个值 计算页是可被 page space支持的,包括存储和程序文本段 他们不包括数据,可执行的和共享的库文件

    MEMNEW

    Process%

    分配给用户进程的内存百分比

    FSCache%

    分配给文件系统缓存的内存百分比

    System%

    系统程序使用的内存百分比

    Free%

    未被分配的内存百分比

    User%

    非系统程序使用的内存百分比

    NET

    read/write

    显示系统中每个网络适配器的数据传输速率(千字节/秒)

    NETPACKET

    reads/s

    统计每个适配器网络读包的数量

    writes/s

    统计每个适配器网络写包的数量

    NFS sheets

       

    PAGE

    faults

    每秒的page faults数

    pgin

    每秒钟所读入的页数,包括从文件系统读取的页数

    pgout

    每秒钟所写出的页数,包括写到文件系统的页数

    pgsin

    每秒钟从页面空间所读取的页数

    pgsout

    每秒钟写到页面空间的页数

    reclaims

    从nmon回收这项之前的10个,和vmstat报告的值是一样的,代表了页替换机制释放的pages/sec的数量

    scans

    扫描页替换机制的pages/sec的数量,和vmstat报告的值是一样的,页替换在空闲页数量到达最小值时初始化,在空闲到达最大值时停止

    cycles

    周期 times/sec的数值,页替换机制需要扫描整个页表,来补充空闲列表。这和vmstat报告的cy数值一样,只是vmstat报告的这个值是整形值,而nmon报告的是实型值

    fsin

    分析器计算的数据为pgin-pgsin的图形处理所用

    fsout

    分析器计算的数据为pgout-pgsout的图形处理所用

    sr/fr

    分析器计算的数据为scans/reclaims的图形处理所用

    PROC

    RunQueue

    运行队列中的内核线程平均数(同sar -q中的runq-sz)

    Swap-in

    等待page in的内核线程平均数 (同sar -q中的swpq-sz)

    pswitch

    上下文开关个数 (同sar -w中的pswch/s)

    syscall

    系统调用总数.(同sar -c中的scall/s)

    read

    系统调用中read的数量. (同sar -c中的sread/s)

    write

    系统调用中write的数量. (同sar -c中的swrit/s)

    fork

    系统调用中fork的数量. (同sar -c中的 fork/s)

    exec

    系统调用中exec 的数量. (同sar -c中的 exec/s)

    rcvint

    tty接收中断的数量. (同sar -y中的 revin/s)

    xmtint

    tty传输中断的数量. (同sar -y中的 xmtin/s)

    sem

    IPC信号元的数量 创建,使用和消除). (同sar -m中的 sema/s)

    msg

    IPC消息元的数量 (发送和接收). (同sar -m中的 sema/s)

    PROCAIO

       

    TOP

    PID

    进程号

    %CPU

    CPU使用的平均数

    %Usr

    显示运行的用户程序所占用的CPU百分比

    %Sys

    显示运行的系统程序所占用的CPU百分比

    Threads

    被使用在这个程序中的线程数

    Size

    对于这个程序一次调用分配给数据段的paging space平均值

    ResText

    对于这个程序一次调用分配给代码段的内存平均值

    ResData

    对于这个程序一次调用分配给数据段的内存平均值

    CharIO

    通过读写系统调用的每秒字节数

    %RAM

    此命令所使用的内存百分比 ((ResText + ResData) / Real Mem)

    Paging

    此进程所有page faults的总数

    Command

    命令名称

    WLMClass

    此程序已分配的 Workload Manager superclass名称

    IntervalCPU

    详细信息中显示在时间间隔中所有调用命令所使用的CPU总数

    WSet

    详细信息中显示在时间间隔中所有调用命令所使用的内存总数

    User

    运行进程的用户名

    Arg

    包含完整的参数字符串输入命令

    UARG

       

    WLM sheets

       

    ZZZZ

       
         




    nmon关键指标列表

    关键指标类型

    关键指标名称

    关键指标含义

    SYS_SUMM

    CPU%

    cpu占有率变化情况;

    IO/sec

    IO的变化情况;

    AAA

    AIX

    AIX版本号;

    cpus

    CPU数量;

    hardware

    被测主机处理器技术;

    host

    被测主机名;

    interval

    监控取样间隔;(秒)

    kernel

    被测主机内核信息;

    CPU_ALL

    User%

    显示在用户模式下执行的程序所使用的 CPU 百分比;

    Sys%

    显示在内核模式下执行的程序所使用的 CPU 百分比;

    Wait%

    显示等待 IO 所花的时间百分比;

    Idle%

    显示 CPU 的空闲时间百分比;

    CPU%

    CPU总体占用情况;

    DISKBUSY

    Disk %Busy Hostname

    执行间隔时间列表;

    hdisknn

    每个磁盘执行采样数据;(磁盘设备的占用百分比)

    DISK_SUMM

    Disk total kb/s Hostname

    执行间隔时间列表;

    Disk Read kb/s

    每个磁盘执行采样数据;(磁盘设备的读速率)

    Disk Write kb/s

    每个磁盘执行采样数据;(磁盘设备的写速率)

    IO/sec

    每秒钟输出到物理磁盘的传输次数;

    NET

    read/write

    本sheet显示系统中每个网络适配器的数据传输速率(千字节/秒)

    JFSFILE

    JFS Filespace %Used Hostname

    执行间隔时间列表;

    file system/LV

    文件系统以及mount磁盘设备已使用空间百分比;

    JFSINODE

    JFS Inode %Used Hostname

    执行间隔时间列表;

    file system/LV

    文件系统以及mount磁盘设备的inode已使用空间百分比;

    MEM

    Memory Hostname

    执行间隔时间列表;

    Real Free %

    实际剩余内存百分比;

    Virtual free %

    虚拟剩余内存百分比;

    Real free(MB)

    实际剩余内存大小;(MB)

    Virtual free(MB)

    虚拟剩余内存大小;(MB)

    Real total(MB)

    实际内存总体大小;(MB)

    Virtual total(MB)

    虚拟内存总体大小;(MB)

    PAGE

    faults

    每秒的page faults(页错误)数;

    pgin

    每秒钟所读入的页数,包括从文件系统读取的页数

    pgout

    每秒钟所写出的页数,包括写到文件系统的页数

    pgsin

    每秒钟从页面空间所读取的页数

    pgsout

    每秒钟写到页面空间的页数

    reclaims

    从nmon回收这项之前的10个,和vmstat报告的值是一样的,代表了页替换机制释放的pages/sec的数量

    scans

    扫描页替换机制的pages/sec的数量,和vmstat报告的值是一样的,页替换在空闲页数量到达最小值时初始化,在空闲到达最大值时停止

    cycles

    周期 times/sec的数值,页替换机制需要扫描整个页表,来补充空闲列表。这和vmstat报告的cy数值一样,只是vmstat报告的这个值是整形值,而nmon报告的是实型值

    fsin

    分析器计算的数据为pgin-pgsin的图形处理所用

    fsout

    分析器计算的数据为pgout-pgsout的图形处理所用

    sr/fr

    分析器计算的数据为scans/reclaims的图形处理所用

  • 相关阅读:
    【Android】将apk文件安装到Android模拟器中
    【笔试or面试】操作系统的多道编程
    表单附件显示问题
    vs2010部署报错,服务器场功能未激活,未安装在此服务器场中,无法添加到该范围,解决方案
    sharepoint 列表排序
    设置网站匿名访问后无法匿名访问列表内容问题解决
    Moss2010隐藏 用户欢迎下拉框项目
    SharePoint 自定义的MasterPage (母版页结构)
    SharePoint2010搜索的简单设置
    (经验)如何“正确”为SharePoint字段命名
  • 原文地址:https://www.cnblogs.com/lynsen/p/8439642.html
Copyright © 2020-2023  润新知