不得不掌握的性能测试监控神器 -nmon 工具详解


做性能测试时候进行结果收集和监控是我们必须要进行的一个步骤,所以选择一个好的监控工具能帮我们省事省心。我们今天给大家介绍的监听工具nmon,就是一个非常强大而且市场上也非常主流应用的一个监控工具。


做性能测试时候进行结果收集和监控是我们必须要进行的一个步骤,所以选择一个好的监控工具能帮我们省事省心。我们今天给大家介绍的监听工具nmon,就是一个非常强大而且市场上也非常主流应用的一个监控工具。

nmon它可以帮助我们在压测开始很长时间内监控全过程的各种资源消耗占用情况,我们就需要用今天的工具 。

nmon是什么

nmon是 Nigel's performance Monitor for Linux【nigel的linux性能监控器】的英文缩写,是一款使用非常灵活的性能监控工具。它这相比于其他的性能监控工具主要有如下的优势:

  • 不仅可以监控CPU等,还可以对CPU进行信息的细分,比如用户态 系统态CPU 空闲等;

  • 内存: 可以监控到详细的虚拟内存、实际内存 以及各线程占用的内存情况都有。

  • 工具本身消耗的资源比较少,对服务器的性能结果干扰很小;

  • 工具监控的数据类型种类比较齐全,比如监控CPU,内存,磁盘,网络的信息,并可以对每个信息进行细分;

  • 工具使用非常简单:下载解压缩工具包直接启动就可以,不需要写复杂的脚本,没有任何使用门槛。

nmon的安装

nmon分为服务器监听工具和客户端分析工具两个部分。

服务器监听工具安装

服务器监听工具需要放在被测试服务器上,并一定要跟服务器的版本对应,所以下载安装之前需要先确认一下系统的版本:

1、确认被测服务器的系统版本, 通过lscpu或者 cat /etc/redhat-release :查看系统版本

图片

比如cat /etc/redhat-release结果显示:CentOS Linux release 7.9.2009 (Core),说明系统是centOS的7的,64bit的操作系统。

2、下载服务器监听的安装包:

https://nchc.dl.sourceforge.net/project/nmon/nmon16m_helpsystems.tar.gz ,并上传到被测的服务器上;

3、在服务器上安装这个nmon工具:

1)解压工具:tar -xzvf nmon.tar.gz

  • 先创建一个目录:mkdir nmon

  • 再解压到指定目录:tar -xzvf nmon16m_helpsystems.tar.gz -C nmon

2) 进入解压后的文件夹,ls查看内容

  • 里面有各种系统的启动包,我们要启动我们系统对应的包:比如 nmon_x86_64_centos7,版本错了就会报错了。

图片

   3)启动服务:./nmon_x86_64_centos7 ,可以按 h进入帮助文档,q可以退出。进去的工具页面如下:

图片

客户端解析工具安装:

1、官网下载安装包:下载下来是个压缩包:

图片

2、压缩到本地,可以得到两个文件:

  • 第一个是工具使用帮助文档,但是工具使用很简单,基本也不用看帮助文档;

  • 第二个是具体工具使用的文件。

图片

到这里就工具的安装和准备就完成了。

nmon的三种运行模式

nmon工具提供了三种用户运行的模式,可以给不同的场景使用。三种模式分别是:

  • 屏幕交互模式 :使用简单的命令字母就可以得到监控结果,需要实时关注屏幕数据,用于进行实时数据分析场景;

  • 数据收集模式:可以在后台自动收集数据,并自己可以定义收集的时长,真正做到无人值守和持久化收集数据;

  • 定时任务模式:定时执行监控,可以指定很多计划去执行,也适合更长时间的数据收集场景。

接下来,我们就分别结合这三种场景给大家介绍一下nmon工具的使用和相关的命令参数。

屏幕交互模式

nmon 提供了非常丰富的参数可以进行各种信息的监控;我们可以通过./nmon -h 进入完整的帮助手册,可以看到详细的所有的命令参数。

图片

参数很多,但是不需要每个都知道,常用的就是cmdrtn 这六个,我们分别来讲解一下这六个参数分别监控的数据。

1)c:进入nmon界面输入小写的c,就可以看到cpu的统计信息,会包括详细信息如下:用户态 系统态 等待io的CPU和空闲占的CPU情况;再输入c就不展示这个界面了。

  • 后面的U和S 是用户态 和系统态的CPU占用率;

  • 最下面的一行是CPU的平均值的计算显示.

  • 右边后面部分是占比100%位,就是目前总体CPU占比;

  • 这个界面默认2s刷新一次,所有每次的显示的数据是个瞬间值,适合用来做实时的数据分析 ;

图片

2)m:小写m命令是用来进行 nmon内存的监控,会显示所有内存详细的信息。比如总共的内存,空闲的内存等信息:

  • 但是要更加细化的知道哪些服务占用,需要使用其他的一些工具分析,通过nmon只能了解大概的情况。

  • RMA_Memory: 物理内存信息,包括总共和空闲,以及空占比。

  • Swap_Space:交换分区由磁盘划分出来的虚拟内内存;

  • 如果发现使用率过高了,在下面的详细信息里看看具体使用在哪些地方了;比如cache的占比,active的占比等

通过这个监控可以很好的看到内存的使用情况,如果内存使用率过高:应用可能被重启, 服务器可能崩溃, 后果是很严重的。

图片

3)d: 小写的d,通过图形化的方式展示IO的情况

  • write操作【Input】,read 【output】,分别展示读写的操作;

  • 右侧是io的繁忙程度百分占比:如果很高就需要分析问题

  • 可以通过这个数据分析得到是否磁盘io成为了系统的瓶颈,如果是的话,是读还是写瓶颈。

图片

4)n:小写的n,用来做网络的监控

  • 跟我们性能相关的数据是第二列和第三列:发送和接受的报文的多少,还跟网卡的处理上限和带宽的上限的关系,取他们的最小值【短板】跟我们发送和接受的数据做比对,判断网络就是否成为了性能瓶颈了。

  • NetworkError Counters部分:如果有报错就会显示,否则会消失。

  • Network I/O部分:显示接受和发送的包的大小,接受和发送的包的个数,接受和发送包的尺寸等信息。

图片

5)rt:小写的r和t,分别监控resource和top。

  • t: 进程消耗资源比较多的进行排序显示,可以有效的知道哪些应用消耗资源最多

图片

  • r: 资源:操作系统的资源信息,关于cpu的介绍,发型版本的介绍都在里面

图片

nmon 数据收集模式

使用命令控制比较长的收集测试结果:./nmon -f -s 2 -c 10

参数解析:

  • -f:标准输出到.nmon文件 :不加名字会有默认的hostname+时间的方式命名 后缀是.nmon

  • -s:收集数据间隔时长: 比如设置为2s

  • -c:总共收集次数:比如总共收集10次

以上的命令也就是收集最近20s的监控数据。输入命令后,会在当前目录生成一个文件,如下图所示:

图片

等时间到了之后,把生成的文件导出到本地,可以使用前面安装的客户端分析工具进行解析:

  • 1、使用Microsoft office打开含有宏的excel文件

  • 2、选择导出到本地的nmon文件

  • 3、保存结果

  • 4、查看结果文件

然后可以生成各个维度的数据图标和统计信息:

图片

nmon的定时模式

这个模式是按照你定的时间跨度去收集,不需要自己计算收集的时间。可以加上的参数如下:

  • -x 收集1天数据,默认为-s900 -c96

  • -X 收集1个小时,默认为-s30 -c120, 这个用的比较多。

  • -z 用root账户运行,收集1天数据,输出到/var/perf/tmp文件

三种模式的使用优先级总结

1、屏幕交互模式用的最多;因为做性能测试的时候需要实时分析很多数据 及时性;

2、其次是数据收集模式,可以查看长时间内的数据

3、最后是定时模式:这种用的比较少,一方面时间太长,另外这个也可以被第二种替代。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vox2vec论文速读

vox2vec: A Framework for Self-supervised Contrastive Learning of Voxel-Level Representations in Medical Images 摘要 本文介绍了 vox2vec——一种体素级表示的自监督学习 (SSL) 对比方法 vox2vec 表示由特征金字塔网络 (FPN&#xf…

设计模式-外观模式(Facade)

1. 概念 外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个统一的接口,用于访问子系统中的一群接口。外观模式的主要目的是隐藏系统的复杂性,通过定义一个高层级的接口,使得子系统更容易被使用。…

如何在前后端一体的项目中引入element-ui,即引入index.js、index.css等文件。

24年接手了一个18年的项目&#xff0c;想使用el-ui的组件库&#xff0c;得自己手动引入。 通过官网可以知道&#xff0c;首先得准备以下文件 <!-- 引入样式 --> <link rel"stylesheet" href"https://unpkg.com/element-ui/lib/theme-chalk/index.css…

C语言:约瑟夫环问题详解

前言 哈喽&#xff0c;宝子们&#xff01;本期为大家带来一道C语言循环链表的经典算法题&#xff08;约瑟夫环&#xff09;。 目录 1.什么是约瑟夫环2.解决方案思路3.创建链表头结点4.创建循环链表5.删除链表6.完整代码实现 1.什么是约瑟夫环 据说著名历史学家Josephus有过以下…

二叉树练习day.9

669.修剪二叉搜索树 链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给你二叉搜索树的根节点 root &#xff0c;同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[low, high]中。修剪树 不应该 改变…

(弟)递归•斐波那契数、n的k次方

这里是目录哦 题目一&#xff1a;递归计算斐波那契数斐波那契数的定义代码运行截图递归过程递归停止条件&#xff08;1个参数&#xff09;✨非递归实现方法 题目二&#xff1a;递归实现n的k次方代码运行截图递归过程递归停止条件&#xff08;不止1个参数&#xff09;✨ 加油&am…

蓝桥杯之注意事项

1.特殊求解的地方 2.一些数学公式 比如二叉树求全深度数值那道题 3.掌握有关库函数 #include<algorithm> 包含sort&#xff08;&#xff09;函数【排列函数】C sort()排序详解-CSDN博客&#xff0c;next_permutation()函数【求解全排列问题】求解数组大小sizeof(arr…

nginx代理动静态资源

部署nginx参考&#xff1a; 部署nginx 静态资源代理 静态资源验证

Project Euler_Problem 172_Few Repeated Digits_动态规划

原题目&#xff1a; 题目大意&#xff1a;18位数里头&#xff0c;有多少个数&#xff0c;对于每个数字0-9&#xff0c;在这18位里面出现均不超过3次 111222333444555666 布星~~ 112233445566778899 可以~~ 解题思路&#xff1a; 动态规划 代码: ll F[19][3000000];void …

【算法刷题 | 回溯思想 02】4.12(电话号码的字母组合)

文章目录 4.电话号码的字母组合4.1问题4.2解法&#xff1a;回溯4.2.1回溯思路&#xff08;1&#xff09;函数返回值以及参数&#xff08;2&#xff09;终止条件&#xff08;3&#xff09;遍历过程 4.2.2代码实现 4.电话号码的字母组合 4.1问题 给定一个仅包含数字 2-9 的字符…

别等Sora了!字节跳动旗下国产AI工具Dreamina,AI视频生成虽不完美,但够惊艳!

别等 Sora 了&#xff0c;试试字节跳动的 Dreamina&#xff01;Dreamina 是剪映旗下的一个 AI 创作平台&#xff0c;目前支持「文生图」、「智能画布」和「视频生成」功能。 Dreamina 官网&#xff1a;https://dreamina.jianying.com/ai-tool/home 之前对 Dreamina 的「文生图…

【ENSP】华为三层交换机配置AAA认证,开启telnet服务

配置步骤 1.给交换机配置ip地址&#xff0c;以便登陆 2.配置AAA&#xff0c;用户名&#xff0c;密码&#xff0c;服务类型&#xff0c;用户权限 3.配置接入设备的数量 4.开启telnet服务 LSW2交换机配置 u t m #关闭提示 sys …