性能测试【二】:nmon的常用操作

news2024/11/30 20:41:06

性能测试【二】:nmon的常用操作

  • 1、nmon介绍说明
  • 2、软件下载
    • 2.1、Nmon下载地址
    • 2.2、Nmonanalyser下载地址
  • 3、nmon使用
    • 3.1、将nmon上传至/usr/local/src目录下,并解压
    • 3.2、解压后根据自己系统的实际版本查找相应的使用命令,并给命令赋予可执行的权限
    • 3.3、赋予权限后,执行该命令会,显示结果如下图:
    • 3.4、配置环境变量
    • 3.5、采集监控数据
    • 3.6、生成图形化报表
    • 3.7、定时任务

性能测试服务器信息监控

1、nmon介绍说明

  • nmon主要记录以下方面的数据:
    • CPU占用率;
    • 内存使用情况;
    • 磁盘I/O速度、传输和读写比率;
    • 文件系统的使用率;
    • 网络I/O速度、传输和读写比率、错误统计率与传输包的大小;
    • 消耗资源最多的进程;
    • 计算机详细信息和资源;
    • 页面空间和页面I/O速度;
    • 用户自定义的磁盘组;
    • 网络文件系统;
  • 执行步骤
    • 第一步:执行nmon工具命令,nmon工具会将输出的内容显示到计算机屏幕同时生成一份nmon文件;
    • 第二步:将生成的nmon文件导出到Windows操作系统,使用分析工具对生成的数据文件进行分析;
    • 第三步:该分析工具会将收集到的数据绘制成相关的图表,供分析使用;

2、软件下载

2.1、Nmon下载地址

https://nmon.sourceforge.io/pmwiki.php?n=Site.Download
其实nmon就是shell脚本,nmon文件运行时调用其他的文件,生成性能数据,这个工具运行时也是通过执行nmon脚本接受参数。
https://nmon.sourceforge.io/pmwiki.php?n=Site.Nmon-Analyser

2.2、Nmonanalyser下载地址

https://nmon.sourceforge.io/pmwiki.php?n=Site.Nmon-Analyser

3、nmon使用

3.1、将nmon上传至/usr/local/src目录下,并解压

mkdir -p /usr/local/src/nmon
tar -xf nmon16m_helpsystems.tar.gz -C /usr/local/src/nmon

在这里插入图片描述

3.2、解压后根据自己系统的实际版本查找相应的使用命令,并给命令赋予可执行的权限

cat /etc/redhat-release
chmod +x nmon_x86_64_centos7

在这里插入图片描述

3.3、赋予权限后,执行该命令会,显示结果如下图:

./nmon_x86_64_centos7

在这里插入图片描述
在完成配置后,通过一些快捷键调取关心的系统资源指标进行显示,如按键“C”可以查看CPU相 关信息;按键“D”可以查看磁盘信息;按键“T”可以查看系统的进程信息;“M”对应内存、“N”对应网络等等,完整的快捷键对应内容可以通过帮助(按键 “H”)查看,可以显示Linux系统CPU、内存、进程信息,包括了CPU的用户、系统、等待和空闲状态值,可用内存、缓存大小以及进程的CPU消耗等详细指标。该种方式显示信息实时性强,能够及时掌握系统承受压力下的运行情况,每颗CPU利用率是多少、内存使用多少、网络流量多少、磁盘读写……这些数据均是实时刷新,一目了然。常见的快捷键。

参数用法
c带条形图的CPU利用率统计信息(CPU核心线程)
m内存和交换统计
d磁盘I/O繁忙百分比&每秒读写数据量KB/5图
r资源:机器类型,名称,缓存详细信息和操作系统版本以及Distro+LPAR
ttop进程,1基础、3性能、4大小、5I/O仅root用户可用
n网络统计信息和错误(如果没有错误,则消失)
j文件系统,包括日记文件系统
k内核统计信息运行队列,上下文切换,派生,平均负载和正常运行时间
UCPU使用率统计信息user,user_nice,system,idle,iowait,irq,softirg,steal,guest,guest_nice
u进程详细信息

输入相应的key值可以查看相应的属性,如下图:
在这里插入图片描述

3.4、配置环境变量

  • 如上配置后,如果使用该命令需要找到该命令的详细路径才能使用,这样不是很方便,所以我们需要将nmon的命令添加到系统环境变量中去,以方便我们可以在任何地方都可以使用该命令。
  • 修改启动文件名称:
    mv nmon_x86_64_centos7 nmon
    ./nmon //执行命令
  • 添加到环境变量中:
    # vim /etc/profile (在profile中写入以下两行内容)
    PATH=$PATH:/usr/local/src/nmon ($PATH:后为命令的路径)
    export PATH
  • 保存退出
  • 使配置文件立即生效
    # source /etc/profile
    # nmon (在任何目录下执行nmon命令启动nmon)

3.5、采集监控数据

为了配合性能测试,我们往往需要将一个时间段内系统资源消耗情况记录下来,这时可以使用命令在远程窗口执行命令:

>/usr/local/src/nmon
>./nmon -f -t -s 5 -c 100
  • 参数说明:
    -s 5 每隔n秒抽样一次,这里为1秒
    -c 100 取出多少个抽样数量,这里为100,即监控=5*100/100
    -f 按标准格式输出文件名称:<hostname>_YYMMDD_HHMM.nmon
    -t为最消耗资源的进程
    -m后跟指定目录 //如果不指定目录会在该命令的源目录下生成相应的监控文件
参数用法
-f标准输出到表格文件,默认-s300-c288,为24小时,输出文件格式为:hostname_YMD_HHMM.nmon
-F类似-f,但是支持指定输出文件的名称
-aGPU加速,统计信息
-b切换黑白和彩色模式
-c总统计次数
-s数据统计间隔时间,单位为:秒
-d最大的磁盘数,默认256
-D与-g一起使用以添加磁盘等待/服务时间和运行中状态
-g用户定义的磁盘组获取数据:生成BBBG和DG行
-I设置忽略进程和磁盘繁忙阈值(默认为0.1%),不要使用小于此百分比的百分比保存或显示proc/磁盘
-J关闭日志文件系统统计信息收集(可能导致自动挂载NFS出现问题)
-l数据捕获中的每行磁盘数可避免电子表格宽度问题。默认值为150。EMC=64。
-m把输出文件保存到指定文件夹。通过cron启动nmon时有用
-M为每个CPU线程添加MHz统计信息。某些POWER8型号CPU内核的频率可能不
-N包括适用于V2,V3和V4的NFS网络文件系统
-pmon启动时将输出PID。在脚本中很有用,可捕获PID以便以后安全停止。
-r在基准测试中用于记录运行详细信息,以供以后分析[默认主机名]
-t在输出中包括top流程
-T-t增强,它将命令行参数保存在UARG部分中
-U包括LiuX10CPU使用率统计信息(文件中的CPUUTIL行)

这么多参数,并不需要所有都记住,只需要重点记住几个即可。
输入命令后nmon目录的下面多了一个以.nmon结尾的文件夹,并且容量一直在增加。
因为这个监控文件,持续在写入资源数据,直至100个监控点收集完成,这些操作均自动完成,无需手工干 预,测试人员可以继续完成其他操作。如果想停止该监控,需要通过“#ps –ef|grep nmon”查询进程号,然后杀掉该进程以停止监控。

3.6、生成图形化报表

通过后台监控和定期监控,我们可以得到扩展名为nmon的监控文件,这些文件记录着系统资源的数据,需要配合分析工具(nmon analyser)进行解读。

  1. 将/usr/local/src/nmon/logs文件夹下生成的命令通过sz命令下载到本地

  2. 在本地解压nmon_analyser_v52_1.zip,解压后双击打开nmon_analyser_v52_1.xlsm,点击Analyse nmon data导入nmon文件,生成报告结果。
    在这里插入图片描述

  3. 点击界面上的Analyse nomn data按钮,将下载的下来的文件添加进去
    最后会生成一个xlsm文件,入下图:
    在这里插入图片描述
    注意事项
    nmon analyser需要借助Excel的宏,WPS默认没有安装宏,即使你下载了插件,貌似也不能正常使用。所以还是老老实实的使用Microsoft的吧,小编使用的2007,能够正常的生成报表。
    生成的报表中的参数意义:

sheet 名称sheet 含义
SYS_SUMM系统汇总,蓝线为©Pu占有率变化情沉,粉线为磁盘IO的变化情况;
AAA关于操作系统以及nmon本身的一些信息
BBBB系统外挂存储容量以及存储类型;
BBBC系统外挂存储位置、状态以及描述信息;
BBBD磁盘适配器信息;(包含磁盘适配器名称以及描述)
BBBE包含通过Isdev命令获取的系统设备及其特征,显示vpaths和hdisks之间的映射关系;
BBBG显示磁盘组详细的映射关系;
BBBL逻辑分区(LPAR)配置细节信息;
BBBN网络适配器信息;
BBBPvmtune,schedtune,emstat和Isattr命令的输出信息;
CPUnn显示执行之间内CPU占用情况,其中包含user%、sys%、wait%和idle%;
CPU_ALL所有CPU述,显示所有CPU平均占用情况,其中包含SMT状态;
CPU_SUMM每一个CPU在执行时间内的占用情况,其中包含user%、sys%、wait%和ide%;
DGBUSY磁盘组每个hdisk设备平均占用情况;
DGREAD每个磁盘组的平均读情况;
DGSIZE每个磁盘组的平均读写情况(块大小);
DGWRITE每个磁盘组的平均写情况;
DGXFER每个磁盘组的/O每秒操作;
DISKBSIZE执行时间内每个hdisk的传输块大小;
DISKBUSY每个hdisk设备平均占用情况;
DISKREAD每个hdisk的平均读情况;
DISKWRITE每个hdisk的平均写情况;
DISKXFER每个hdisk的/O每秒操作;
DISKSERV本sheet显示在每个收集间隔中hdisk的评估服务时间(未响应时间)
DISK_SUMM总体disk读、写以及/O操作;
EMCBSIZE/FAStBSIZE执行时间内EMC存储的传输块大小;
EMCBUSY/FAStBUSYEMC存储设备平均占用情况;
EMCREAD/FAStREADEMC存诸的平均读情况;
EMCWRITE/FAStWRITEEMC存储的平均写情况,
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适配器列表,包含了数据传输速度为读取和写入操作(千字节/秒)和1/O操作执行的总数量
JFSFILE本sheet显示对于每一个文件系统中,在每个间隔区间正在被使用的空间百分比
JFSINODE本sheet显示对于每一个文件系统中,在每个间隔区间正在被使用的inode百分比
LARGEPAGE本图表显示Usedpages和Freepages随着时间的变化:
LPAR
MEM本sheet主图上显示空闲实存的数量
MEMUSE除%comp参数外,本sheet包含的所有项都和vmtune命令的报告中一样
MEMNEW本sheet显示分配的内存片信息,分三大类:用户进程使用页,文件系统缓存,系统内核使用页
NET本sheet显示系统中每个网络适配器的数据传输速率(千字节/秒)
NETPACKET本sheet统计每个适配器网络读写包的数量;这个类似于netpmon-Odd命令
NFS_sheets
PAGE本sheet统计相关页信息的记录
PROC本sheet包,含nmon内核内部的统计信息。其中RunQueue和Swap-in域是使用的平均时间间隔,其他项的单位是比率/秒
PROCAIO本sheet包含关于可用的和active的异步IO进程数量信息.
TOP
UARG
WLM_sheets
ZZZZ本sheet自动转换所有nmon的时间戳为现在真实的时间,方便更容易的分析

重点需要关注的sheet:SYS_SUMM CPU_ALL MEM
CPU平均占用率可以在SYS_SUMM看
在这里插入图片描述

也可以在CPU_ALL看。
在这里插入图片描述
内存使用率计算:(memtotal-memfree-cached-)/memtotal*100%
在这里插入图片描述

3.7、定时任务

  • 除配合性能测试的短期监控,我们也可以实现对系统的定期监控,作为运营维护阶段的参考。定期监控实现如下:
    • 1、执行命令:#crontab -u 用户 –e
    • 2、 在最后一行添加如下命令:
      0 8 * * 1,2,3,4,5 /usr/local/src/nmon_x86_64_centos7 -f -N -m /nmon/log -s 30 -c 1200
      表示:
      周一到周五,从早上08点开始,监控10个小时(到18:00整为止),输出到/nmon/log
      自动按天采集数据:
      在 crontab 中增加一条记录:
      0 0 * * * root nmon -s300 -c288 -f -m /home/ > /dev/null 2>&1
      300*288=86400 秒,正好是一天的数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1255781.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot函数式web

1.通常是路由(请求路径)业务 2.函数式web&#xff1a;路由和业务分离 一个configure类 配置bean 路由等 实现业务逻辑 这样实现了业务和路由的分离

Yolov8训练自己的数据集过程

做自己第一次使用Yolov8的记录。 1、下载代码 官网的我没找到对应的视频教程&#xff0c;操作起来麻烦&#xff0c;一下这个链接的代码可以有对应bilibili教程&#xff1a;完整且详细的Yolov8复现训练自己的数据集 选择这个下载&#xff1a; 2、安装需要的包&#xff1a; 按…

2018年10月16日 Go生态洞察:App Engine新Go 1.11运行时发布

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

项目中启用Log4j2日志框架

在实际的项目开发中&#xff0c;日志十分重要&#xff0c;无论是记录运行情况还是定位线上问题&#xff0c;都离不开对日志的分析。日志记录了系统行为的时间、地点、状态等相关信息&#xff0c;能帮助我们了解并监控系统状态&#xff0c;并在发生错误或者接近某种危险状态时能…

emu8086汇编语言输出“Hello World!“

输出Hello world 首先我们尝试用C语言来实现该功能&#xff1a; #include <stdio.h>int main() {printf("Hello World!"); // 输出“Hello World!”return 0; } 将这行代码翻译成汇编语言... ; DS 数据段定义 DATA SEGMENTZIFU DB Hello World!,$ ;字符串…

歌曲《兄弟情深》:歌手荆涛歌曲中的真挚情感

在人生的道路上&#xff0c;有时我们会遇到迷茫、失落、困惑等种种情境。而在这些时刻&#xff0c;身边有一个真挚的兄弟&#xff0c;其意义是无法估量的。歌手荆涛演唱的《兄弟情深》即是对这种深厚情感的美妙歌颂。 一、迷茫时的指引 “当我迷茫时&#xff0c;有你帮目标重新…

安卓系统修图软件(二)

晚上好&#xff0c;自上一次博主分享修图软件之后&#xff0c;今天博主将带来第二期安卓修图软件的推送&#xff0c;个个都是宝藏&#xff0c;建议大家赶紧体验哦。 1.canva可画 如果说有一款手机APP可以与PS媲美&#xff0c;那么一定非canvas莫属。这款强大的修图软件支持海报…

【面试题】介绍一下类加载过程,什么是双亲委派模型

背景 java 文件在运行之前&#xff0c;必须经过编译和类加载两个过程&#xff1a; 编译过程&#xff1a;把 .java 文件 编译成 .class 文件类加载过程&#xff1a;把 .class 文件加载到 JVM 内存里&#xff0c;加载完成后就会得到一个 class 对象&#xff0c;我们就可以使用 n…

将本地项目上传到gitee

本文详细介绍如何将本地项目上传到gitee 1.登录gitee创建一个与本地项目名相同的仓库 2.进入本地项目所在路径&#xff0c;打开Git Bash 3.执行初始化命令 git init4.添加远程仓库 4.1 点击复制你的HTTPS仓库路径 4.2 执行添加远程仓库命令 git remote add origin 你的…

顺序查找(线性查找),折半查找(二分或对分查找),分块查找(索引顺序查找)

文章目录 查找查找的基本概念 线性表的查找一、顺序查找&#xff08;线性查找&#xff09;二、折半查找&#xff08;二分或对分查找&#xff09;三、分块查找&#xff08;索引顺序查找&#xff09; 查找 查找的基本概念 查找表 查找表是同一类型的数据元素&#xff08;或记录…

C#文件操作File类vsFileInfo类和Directory类vsDirectoryInfo类

目录 一、File类vsFileInfo类 1.File类 &#xff08;1&#xff09;示例源码 &#xff08;2&#xff09;生成效果 2.FileInfo类 &#xff08;1&#xff09;示例源码 &#xff08;2&#xff09;生成效果 二、 Directory类vsDirectoryInfo类 1.Directory类 &#xff08;…

怎么在哔哩哔哩上引流?分享五个b站引流推广必备的几个方法

大家好&#xff0c;我是 小刘今天为大家分享的是抖音引流知识分享&#xff0c;今天咱们聊一些干货知识&#xff0c;绝对会让你们有一个重新的认知。哔哩的流量大&#xff0c;是毋庸置疑的&#xff0c;哔哩也是最早一批短视频平台。哔哩于2017年上线&#xff0c;一开始主要是通过…

基于SSM的企业订单跟踪管理系统(有报告)。Javaee项目

演示视频&#xff1a; 基于SSM的企业订单跟踪管理系统&#xff08;有报告&#xff09;。Javaee项目 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring SpringM…

Kotlin学习——kt入门合集博客 kt里的委派模式Delegation kt里的特性

Kotlin 是一门现代但已成熟的编程语言&#xff0c;旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作&#xff0c;并提供了多种方式在多个平台间复用代码&#xff0c;以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

2023年【N1叉车司机】新版试题及N1叉车司机作业考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 N1叉车司机新版试题参考答案及N1叉车司机考试试题解析是安全生产模拟考试一点通题库老师及N1叉车司机操作证已考过的学员汇总&#xff0c;相对有效帮助N1叉车司机作业考试题库学员顺利通过考试。 1、【多选题】《中华…

基于U-Net的视网膜血管分割(Pytorch完整版)

基于 U-Net 的视网膜血管分割是一种应用深度学习的方法&#xff0c;特别是 U-Net 结构&#xff0c;用于从眼底图像中分割出视网膜血管。U-Net 是一种全卷积神经网络&#xff08;FCN&#xff09;&#xff0c;通常用于图像分割任务。以下是基于 U-Net 的视网膜血管分割的内容&…

公司注册资金认缴的好处有哪些

公司注册资金认缴的好处 1、减少投资项目审批&#xff0c;最大限度地缩小审批、核准、备案范围&#xff0c;切实落实企业和个人投资自主权。对确需审批、核准、备案的项目&#xff0c;要简化程序、限时办结。同时&#xff0c;为避免重复投资和无序竞争&#xff0c;强调要加强土…

LCR 047. 二叉树剪枝 和 leetCode 1110. 删点成林 + 递归 + 图解

给定一个二叉树 根节点 root &#xff0c;树的每个节点的值要么是 0&#xff0c;要么是 1。请剪除该二叉树中所有节点的值为 0 的子树。节点 node 的子树为 node 本身&#xff0c;以及所有 node 的后代。 示例 1: 输入: [1,null,0,0,1] 输出: [1,null,0,null,1] 解释: 只有…

代码常见问题

1. 前端页面出现404了&#xff1a; 1&#xff09;那说明你该页面里面有某个接口地址&#xff08;url&#xff09;写错了&#xff0c;后台没有这个接口 2&#xff09;你后台写了这个接口&#xff0c;但是后台忘了重启服务了&#xff0c;这样的话前端也映射不上的 所以404的时…

安卓吸顶效果

当列表滑动时&#xff0c;图片逐渐消失&#xff0c;toolBar悬停在头部。 <?xml version"1.0" encoding"utf-8"?><androidx.coordinatorlayout.widget.CoordinatorLayoutxmlns:android"http://schemas.android.com/apk/res/android"x…