Jmeter系列(38)- 详解性能监控工具 nmon

摘要:
此处关注CPU_ALL页面CPU_ALL页,您可以看到下图所示的CPU整数

如果你想从头学习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

Jmeter系列(38)- 详解性能监控工具 nmon第1张

下载 nmon

方式一

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

Jmeter系列(38)- 详解性能监控工具 nmon第2张

通过 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 

查看解压后的文件

Jmeter系列(38)- 详解性能监控工具 nmon第3张

运行 nmon

我的系统是 x86_64 centos8,敲

./nmon_x86_64_centos8

Jmeter系列(38)- 详解性能监控工具 nmon第4张

常用 nmon 快捷命令

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

Jmeter系列(38)- 详解性能监控工具 nmon第5张

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

nmon 命令行参数

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

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

命令行栗子

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

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

Jmeter系列(38)- 详解性能监控工具 nmon第6张

将这个 .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

Jmeter系列(38)- 详解性能监控工具 nmon第7张

解压后发现有两个文件

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

打开 nmon analyser v66.xlsm

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

Jmeter系列(38)- 详解性能监控工具 nmon第8张

解决宏启动失败的情况

Jmeter系列(38)- 详解性能监控工具 nmon第9张

打开 .nmon 文件

点击 Analyze nmon data,选择 nmon 文件

Jmeter系列(38)- 详解性能监控工具 nmon第10张

查看监控结果数据

Jmeter系列(38)- 详解性能监控工具 nmon第11张

nmon 监控结果图表分析

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

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

系统汇总界面:SYS_SUMM

Jmeter系列(38)- 详解性能监控工具 nmon第12张

页面显示项

  • 主机名
  • 执行日期
  • 系统 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

Jmeter系列(38)- 详解性能监控工具 nmon第13张

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

系统详细信息:BBBP

Jmeter系列(38)- 详解性能监控工具 nmon第14张

页面信息主要包括:操作系统版本,主机磁盘信息,主机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%
CPUsCPU核数,即操作系统是多少核的

磁盘读写情况

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

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

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

DISK_SUMM 

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

Jmeter系列(38)- 详解性能监控工具 nmon第15张Jmeter系列(38)- 详解性能监控工具 nmon第16张

参数说明

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

内存情况:MEM

Jmeter系列(38)- 详解性能监控工具 nmon第17张

参数说明

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

系统网络情况:NET,NETPACKET

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

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

Jmeter系列(38)- 详解性能监控工具 nmon第18张Jmeter系列(38)- 详解性能监控工具 nmon第19张

参数说明

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

系统进程:PROC

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

采集时间:ZZZZ

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

免责声明:文章转载自《Jmeter系列(38)- 详解性能监控工具 nmon》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇腾讯云平台--云直播和云点播linux查看cpu温度下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux top命令查看内存及多核CPU的使用讲述

查看多核CPU命令 mpstat -P ALL  和  sar -P ALL 说明:sar -P ALL > aaa.txt   重定向输出内容到文件 aaa.txt top命令 经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。本文...

性能调优攻略

摘要:关于性能优化这是一个比较大的话题,在《由12306.cn谈谈网站性能技术》中我从业务和设计上说过一些可用的技术以及那些技术的优缺点,今天,想从一些技术细节上谈谈性能优化,主要是一些代码级别的技术和方法。 关于性能优化这是一个比较大的话题,在《由12306.cn谈谈网站性能技术》中我从业务和设计上说过一些可用的技术以及那些技术的优缺点,今天,想从一些...

21-CPU案例:如何提高LLC(最后一级缓存)的命中率

面两讲中,我介绍了性能优化的六大原则和十大策略。从今天开始,我们来通过具体案例的解决方案讲解,了解这些原则和策略是如何应用的。 首先,我们要来探讨的是一个CPU相关的性能优化案例。 这个性能案例,是关于CPU的最后一级缓存的。你应该知道,最后一级缓存(一般也就是L3),如果命中率不高的话,对系统性能会有极坏的影响(相关基础知识建议回顾第15讲)。所以对这一...

“FPGA+云"助力高性能计算

用AI防鲨鱼、用AI学写中国书法、用AI预测人类死亡时间、用AI审判罪犯……在人工智能方兴未艾的今天,越来越廉价和普及的AI领域真的是什么都不值钱,除了想象力。那在这无所不能的AI盛世,一定没道理让算力限制我们的想象力,更没道理让算力限制了我们的生产力。 从CPU到CPU+,从+GPU到+FPGA 随着通用处理器(CPU)的摩尔定律已入暮年,从美国的微...

Linux下区分物理CPU、逻辑CPU和CPU核数

判断依据: 一个物理封装的CPU(通过physical id区分判断)可以有多个核(通过core id区分判断)。 而每个核可以有多个逻辑cpu(通过processor区分判断)。 一个核通过多个逻辑cpu实现这个核自己的超线程技术。 cpu cores 条目包含位于相同物理封装中的内核数量。 siblings 条目列出了位于相同物理封装中的逻辑处理器的数...

Python基础-多线程与多进程

一,线程与进程之间的关系:(从知乎上看到的) 一个必须知道的事实:执行一段程序代码,实现一个功能的过程介绍 ,当得到CPU的时候,相关的资源必须也已经就位,就是显卡啊,GPS啊什么的必须就位,然后CPU开始执行。这里除了CPU以外所有的就构成了这个程序的执行环境,也就是我们所定义的程序上下文。当这个程序执行完了,或者分配给他的CPU执行时间用完了,那它就...