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

性能测试【二】: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 秒,正好是一天的数据。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Arduio开发STM32所面临的风险

据说micro_ros用到了arduino,然后用arduino搞stm32需要用到这个Arduino STM32的东西&#xff0c;然后这里申明了&#xff1a;这些代码没有经过严格测试&#xff0c;如果是向心脏起搏器&#xff0c;自动驾驶这样要求严格的的情况下&#xff0c;这个东西不能保证100%不发生问题&a…

怎样提升伦敦银买卖技巧?

如果投资者想提升伦敦银的买卖技巧&#xff0c;可以学习一些有用的技术分析方法。所谓技术分析&#xff0c;就是通过对行情过往价格和相关交易数据进行收集&#xff0c;用图表的方式解读白银市场&#xff0c;进而预测行情未来主线走势、判断价格细节变化、寻找重要支撑点阻力点…

BGP综合实验

一、实验拓扑图 二、实验需求 1、AS1存在两个环回&#xff0c;一个地址为192.168.1.0/24&#xff0c;该地址不能在任何协议中宣告&#xff0c;AS3存在两个环回&#xff0c;一个地址为192.168.2.0/24&#xff0c;该地址不能在任何协议中宣告&#xff0c;最终要求这两个环回可以…

Rust的异步编程与Futures

欢迎关注我的公众号lincyang新自媒体&#xff0c;回复关键字【程序员经典书单】&#xff0c;领取程序员的100本经典书单 大家好&#xff01;我是lincyang。 今天&#xff0c;我们来探讨Rust中的异步编程和Futures。Rust的异步编程是一个强大的特性&#xff0c;它允许开发者编写…

学习grdecl文件格式

一、初步了解 最近在学习grdecl文件格式&#xff0c;文档不多。查找资料发现&#xff0c;这个格式的文件是由斯伦贝谢公司的ECLIPSE专业软件生成的。 搜到一些文档&#xff0c;都是2010年之前的&#xff0c;似乎有些用处。文档也交代了这个文件格式分为二进制和文本格式…

卷积神经网络(CNN)车牌识别

文章目录 一、前言二、前期工作1. 设置GPU&#xff08;如果使用的是CPU可以忽略这步&#xff09;2. 导入数据3. 查看数据3.数据可视化4.标签数字化 二、构建一个tf.data.Dataset1.预处理函数2.加载数据3.配置数据 三、搭建网络模型四、设置动态学习率五、编译六、训练八、保存和…

链表?细啊!超详细的知识点总结!

链表 定义&#xff1a;链表是一种递归的数据结构&#xff0c;它或者为空&#xff08;null)&#xff0c;或者是指向一个结点&#xff08;node&#xff09;的引用&#xff0c;该结点含有一个泛型的元素和一个指向另一条链表的引用。 ​ 其实链表就是有序的列表&#xff0c;它在内…

Linux面试题(二)

目录 17、怎么使一个命令在后台运行? 18、利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信息&#xff1f; 19、哪个命令专门用来查看后台任务? 20、把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令? 21、终止进程用什么命令…

C++学习之路(五)C++ 实现简单的文件管理系统命令行应用 - 示例代码拆分讲解

简单的文件管理系统示例介绍: 这个文件管理系统示例是一个简单的命令行程序&#xff0c;允许用户进行文件的创建、读取、追加内容和删除操作。这个示例涉及了一些基本的文件操作和用户交互。 功能概述&#xff1a; 创建文件 (createFile())&#xff1a; 用户可以输入文件名和内…

11【保姆级】-GO语言的struct

11【保姆级】-GO语言的struct 一、Go的面向对象1.1 说明 二、结构体2.1 结构体和结构体变量(实例)的区别和联系2.2 声明结构体 和 细节说明2.3 结构体在内存中的布局2.4 创建结构体和访问结构体的四种方式 在学习GO语言时&#xff1a; 先建立整体框架&#xff0c;然后再去抠细节…

职场快速赢得信任

俗话说的好&#xff0c;有人的地方就有江湖。 国内不管是外企、私企、国企&#xff0c;职场环境都是变换莫测。 这里主要分享下怎么在职场中快速赢取信任。 1、找到让自己全面发展的方法 要知道&#xff0c;职场中话题是与他人交流的纽带&#xff0c;为了找到共同的话题&am…

elastic -job和springboot集成实现分布式调度5

一 案例介绍说明 1.1 案例介绍 基于 Spring boot 集成方式的而产出的工程代码&#xff0c;完成对作业分片的实现&#xff0c;文件数据备份采取更接近真实项目的数 据库存取方式。 1.分片设置 2.每个线程获取给自的类型 1.2 作业配置 zk的配置 二 操作说明 2.1 数据表的初始…

【单片机学习笔记】STC8H1K08参考手册学习笔记

STC8H1K08参考手册学习笔记 STC8H系列芯片STC8H1K08开发环境串口烧录 STC8H系列芯片 STC8H 系列单片机是不需要外部晶振和外部复位的单片机&#xff0c;是以超强抗干扰/超低价/高速/低功耗为目标的 8051 单片机,在相同的工作频率下,STC8H 系列单片机比传统的 8051约快12 倍速度…

讯飞星火知识库文档问答Web API的使用(二)

上一篇提到过星火spark大模型&#xff0c;现在有更新到3.0&#xff1a; 给ChuanhuChatGPT 配上讯飞星火spark大模型V2.0&#xff08;一&#xff09; 同时又看到有知识库问答的web api&#xff0c;于是就测试了一下。 下一篇是在ChuanhuChatGPT 中单独写一个基于星火知识库的内容…

机器学习库:pandas

☁️主页 Nowl &#x1f525;专栏《机器学习实战》 《机器学习》 &#x1f4d1;君子坐而论道&#xff0c;少年起而行之 文章目录 写在开头 基本数据格式 DataFrame 数据选取 iloc 数据描述 head describe 数据合并 merge 数据删除 drop drop删除多列 处理缺失…

LeetCode Hot100 236.二叉树的最近公共祖先

题目&#xff1a; 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节…

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

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

什么是分布式锁?Redis实现分布式锁详解

目录 前言&#xff1a; 分布式系统买票示例 引入redis做分布式锁 引入过期时间 引入校验id 引入lua脚本 过期时间续约问题 redlock算法 小结&#xff1a; 前言&#xff1a; 在分布式系统中&#xff0c;涉及多个主机访问同一块资源&#xff0c;此时就需要锁来做互斥控制…

[论文阅读]CBAM——代码实现和讲解

CBAM 论文网址&#xff1a;CBAM 论文代码&#xff1a;CBAM 本文提出了一种卷积块注意力模块&#xff08;CBAM&#xff09;&#xff0c;它是卷积神经网络&#xff08;CNN&#xff09;的一种轻量级、高效的注意力模块。该模块沿着通道和空间两个独立维度依次推导注意力图&#x…