zoukankan      html  css  js  c++  java
  • Jmeter系列(38)- 详解性能监控工具 nmon

    如果你想从头学习Jmeter,可以看看这个系列的文章哦

    https://www.cnblogs.com/poloyy/category/1746599.html

    前言

    • 做性能测试,服务器监控是至关重要的,前面也讲了通过 ServerAgent 去监控服务器
    • 这一篇博文将详细讲解 nmon 监控工具

    nmon 官方介绍

    • nmon是一种在 AIX 与各种 Linux 操作系统上广泛使用的监控与分析工具
    • 它能在系统运行过程中实时地捕捉系统资源的使用情况,记录的信息比较全面
    • 它可将服务器系统资源耗用情况收集起来并出一个特定的文件,并可利用 excel 分析工具(nmon analyser)进行数据的统计分析

    nmon 可监控的数据类型

    • CPU使用率
    • 内存使用情况
    • 磁盘适配器
    • 文件系统中的可用空间
    • 页面空间和页面速度
    • 异步I/O,仅适用于AIX
    • 网络文件系统(NFS)
    • 磁盘 I/O 速度、传输和读/写比率
    • 服务器详细信息和资源
    • 内核统计信息
    • 消耗资源最多的进程
    • 运行队列信息

    nmon 特点

    1. nmon 运行不会占用过多的系统资源,通常情况下CPU利用率不会超过 2%
    2. 功能强大,监控数据类型全面
    3. 结合grafana之类的仪表图,可以更直观的实时展示所监控的数据
    4. 移植性、兼容性较好
    5. 无人值守监控
    6. 可以实时查看监控结果,也可以测试结束后本地查看监控结果

    nmon 在做性能测试时的劣势

    不能像 ServerAgent 一样集成到 Jmeter 中查看监控结果

    Linux 下安装并运行 nmon

    检查安装环境

    # 查看操作系统的信息
    uname -a 
    
    # 查看linux发行版本 
    lsb_release -a

    下载 nmon

    方式一

    官方地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download

    通过 FTP 上传到服务器目录下

    方式二

    服务器直接敲命令行

    wget http://sourceforge.net/projects/nmon/files/nmon16e_mpginc.tar.gz 

    这种方式无法下最新版的

    百度云下载链接

    包含了 nmon 安装包和分析数据工具包

    链接:https://pan.baidu.com/s/1WHmlf-Em3FfKbUUa_GWi6A 提取码:w6gy

    解压

    tar -zxvf nmon16m_helpsystems.tar.gz 

    查看解压后的文件

    运行 nmon

    我的系统是 x86_64 centos8,敲

    ./nmon_x86_64_centos8

    常用 nmon 快捷命令

    • q : 停止并退出 nmon
    • h : 查看帮助
    • c : 查看 CPU 统计数据
    • m : 查看内存统计数据
    • d : 查看硬盘统计数据
    • k : 查看内核统计数据
    • n : 查看网络统计数据
    • N : 查看 NFS 统计数据
    • j : 查看文件系统统计数据
    • t : 查看高耗进程
    • V : 查看虚拟内存统计数据
    • v : 详细模式

    按多个快捷命令可以同时显示多项监控结果哦

    nmon 命令行参数

    启动 nmon 时,也可以指定一些参数

    参数 作用
    -f 监控结果以文件形式输出,默认:机器名_日期_时间.nmon
    -F 和 -f 一样作用,不过要指定输出文件名
    -s 采样频率,单位秒
    -c 采样次数
    -m nmon 文件保存的目录
    -T 显示资源占用率高的进程

    命令行栗子

    ./nmon -f -t -s 10 -c 6 -m /data/nmon

    每 10s 采集一次系统资源数据,共采集 6 次(1 min 内收集 6 次),将最终 nmon 文件生成在 /data/nmon 目录下

    将这个 .nmon 文件传输到本地,用于后续的结果分析

    重点

    • 一般来说不建议对稳定性测试(压力测试)使用 nmon 监控,因为生成的 nmon 文件超过10M时,分析工具会由于内存不足导致报错
    • 如果必须进行的话,建议加大采样频次,降低采样次数(低于330次)

    查看 nmon 监控结果

    nmon_analyser 介绍

    • nmon 监控捕获的信息,一般用 nmon_analyser 来进行分析
    • nmon_analyser 由 IBM 提供, 使用 excel 的宏命令分析加载生成 excel 图表,展示资源占用的各项信息

    下载nmon_analyser 

    官方:http://nmon.sourceforge.net/pmwiki.php?n=Site.Nmon-Analyser

    百度云链接:https://pan.baidu.com/s/1WHmlf-Em3FfKbUUa_GWi6A 提取码:w6gy

    解压后发现有两个文件

    • psd:说明文档
    • xlsm:宏文件,分析工具

    打开 nmon analyser v66.xlsm

    记住一定要通过 office 或者 wps 用 excel 的方式打开哦,且需要启动了

    解决宏启动失败的情况

    打开 .nmon 文件

    点击 Analyze nmon data,选择 nmon 文件

    查看监控结果数据

    nmon 监控结果图表分析

    分析结果文件为一个excel表格,里面分为 SYS_SUMM、CPU_ALL、MEM、DISK_SUMM 等多个标签页,每个标签页都有该主题下监控的明细数据和对应的统计图表

    每个标签页都展示了对某一指标如CPU、内存、网络、I/O的详细监控数据

    系统汇总界面:SYS_SUMM

    页面显示项

    • 主机名
    • 执行日期
    • 系统 cpu 使用情况(蓝线)
    • 系统 I/O 情况(粉红线)
    • 左纵轴为系统 cpu(user%+sys%)使用率
    • 横轴为运行时长
    • 右纵轴为系统磁盘传输(Disk xfers)
    • 坐标下侧为统计信息:系统 I/O 情况(一个采集间隔内的平均值、最大值、出现最大值的时间),系统CPU使用情况等

    参数

    说明

    Avg disk tps during an interval

    采集间隔内磁盘平均I/O次数该值等于Sheet DISK_SUMM中IO/sec列的平均值

    Max disk tps during an interval

    采集间隔内磁盘最大I/O次数该值等于Sheet DISK_SUMM中IO/sec列的最大值

    Max disk tps interval time

    显示磁盘最大I/O所在时间点

    Total number of Mbytes read

    采集间隔内磁盘读的总兆字节数

    Total number of Mbytes written

    采集间隔内磁盘写的总兆字节数

    Read/Write Ratio

    读写比率

    User%

    采集间隔内所有CPU在User Mode下的Time占比(Avg、Max)

    Sys%

    采集间隔内所有CPU在System Mode下的Time占比(Avg、Max)

    Wait%

    采集间隔内所有CPU处于空闲且等待I/O完成的时间比例(Avg、Max)

    Idel%

    采集间隔内所有CPU处于空闲Time的占比(Avg、Max)

    CPU%

    CPU总体占用情况(Avg、Max)

    重点

    • 如果一个CPU被充分使用,CPU占用时间配比应为User%(65-70%),Sys%(30-35%),Idel%(0-5%)
    • 如果 Sys% 占比过大说明系统进程本身占领大部分 cpu 资源,可考虑系统是否存在过多僵尸进程或者系统进程存在死循环等原因
    • CPU Wait% 占比过大说明可能 IO 或内存方面存在瓶颈,可能是由于内存不够而引起频繁的的数据交换

    系统信息:AAA

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

    系统详细信息:BBBP

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

    CPU使用情况:CPU_ALL,CPU_SUMM,CPU001...

    包括主机 CPU 使用情况汇总以及每个 CPU 的运行情况。

    此处重点关注 CPU_ALL 页面

    CPU_ALL 页面可以看到如下图的CPU整体上在每个监控点的数据,包括 User%、Sys%、Wait%、Idle%、Steal%、CPU% 以及 CPUs( cpu 个数)及对应图表

    CPU-ALL

    参数说明

    参数 说明
    CPU Total 执行间隔时间列表
    User% 采集间隔内所有CPU在User Mode下的Time占比(Avg、Max)

    Sys%

    采集间隔内所有CPU在System Mode下的Time占比(Avg、Max)
    Wait% 采集间隔内所有CPU处于空闲且等待I/O完成的时间比例(Avg、Max)
    Idel% 采集间隔内所有CPU处于空闲Time的占比(Avg、Max),此值和User%,Sys%,Wait%,Steal%之和等于1
    CPU% CPU总体占用情况,这个值通常等于User%+Sys%
    CPUs CPU核数,即操作系统是多少核的

    磁盘读写情况

    共有六个标签可查看磁盘情况

    • DISK_SUMM
    • DISKBSIZE
    • DISKBUSY
    • DISKREAD
    • DISKWRITE
    • DISKXFER

    磁盘的读、写及I/O统计信息,系统各磁盘分区的读写情况。此处重点关注 DISK_SUMM 即可

    DISK_SUMM 

    DISK_SUMM按采集时间显示所有磁盘和分区的Read/Write的速率(KB/s)和所有磁盘和分区的I/O率。

    参数说明

    参数 说明
    Disk total KB/s 执行间隔时间列表
    Disk Read KB/s 采集间隔内磁盘设备的读速率
    Disk Write KB/s 采集间隔内磁盘设备的写速率
    IO/sec 采集间隔内磁盘整体平均每秒IO数

    内存情况:MEM

    参数说明

    参数 说明
    memtotal 物理内存总大小,单位MB
    swaptotal 虚拟内存(即交换空间)的总大小
    memfree 剩余物理内存大小
    swapfree 剩余虚拟内存大小
    cached 物理内存中被cache占用的缓存大小
    active 在活跃使用中的内存大小
    buffers 文件系统缓冲区的大小
    swapcached 虚拟内存中被cache占用的缓存大小
    inactive 不常使用的内存大小

    系统网络情况:NET,NETPACKET

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

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

    参数说明

    参数 说明
    Network I/O 执行间隔时间列表
    Total-Read 网络适配器每秒接收的数据包总大小(KB/s)
    Total-Write(-ve) 网络适配器每秒发送的数据包总大小(KB/s)

    系统进程:PROC

    反映系统运行线程及等待切换的线程平均数

    采集时间:ZZZZ

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

  • 相关阅读:
    Codeforces 845E Fire in the City 线段树
    Codeforces 542D Superhero's Job dp (看题解)
    Codeforces 797F Mice and Holes dp
    Codeforces 408D Parcels dp (看题解)
    Codeforces 464D World of Darkraft
    Codeforces 215E Periodical Numbers 容斥原理
    Codeforces 285E Positions in Permutations dp + 容斥原理
    Codeforces 875E Delivery Club dp
    Codeforces 888F Connecting Vertices 区间dp (看题解)
    Codeforces 946F Fibonacci String Subsequences dp (看题解)
  • 原文地址:https://www.cnblogs.com/poloyy/p/13225561.html
Copyright © 2011-2022 走看看