【JMeter】使用nmon进行性能资源监控

2023-12-24 21:12

本文主要是介绍【JMeter】使用nmon进行性能资源监控,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、前言

​ 在工作中可能会遇到需要在压测的时候对Linux服务器进行性能资源监控的情况。这时可以用nmon来对服务器进行监控。

二、nmon的下载安装

1.查看系统信息

shell

cat /etc/os-release

结果为

shell

PRETTY_NAME="Debian GNU/Linux 12 (bookworm)" NAME="Debian GNU/Linux" VERSION_ID="12" VERSION="12 (bookworm)" VERSION_CODENAME=bookworm ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/"

很明显,我们的系统为Debian 12

2.查看CPU信息

shell

lscpu

结果为

shell

Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 36 bits physical, 48 bits virtual Byte Order: Little Endian CPU(s): 16 On-line CPU(s) list: 0-15 Vendor ID: AuthenticAMD Model name: AMD Ryzen 7 4800H with Radeon Graphics CPU family: 23 Model: 96 Thread(s) per core: 2 Core(s) per socket: 8 Socket(s): 1 Stepping: 1 CPU(s) scaling MHz: 100% CPU max MHz: 2900.0000 CPU min MHz: 0.0000 BogoMIPS: 5800.00 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse ss e2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave osxsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bp ext perfctr_llc mwaitx fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb s ha_ni umip rdpid Virtualization features: Virtualization: AMD-V Hypervisor vendor: Windows Subsystem for Linux Virtualization type: container

这里可以看出我们系统为x86_64的,CPU为AMD的

2.下载

nmon下载地址:nmon and njmon | Main / HomePage

点击左侧Download Binaries ,在右侧找到上面查到的信息对应版本的nmon进行下载

3.解压

将下载好的压缩包放进Linux中,解压。

新建文件夹nmonTest,找到对应的或者最近版本的nmon,复制到文件夹中,

shell

mkdir nmonTest cp nmon_x86_64_debian10 ./nmonTest/nmon cd nmonTest

然后需要赋予nmon文件执行权限,否则无法正常执行nmon

shell

chmod u+x nmon

检查依赖

shell

ldd nmon

4.一个小问题

在初次安装时,遇到了问题:error while loading shared libraries: libncurses.so.6: cannot open shared object file: No such file or directory 根据报错内容提示,没有找到共享库libncurses.so.6

解决方法:

缺啥补啥,安装一下该依赖即可

shell

sudo apt-get install libncurses6 // Debian和Ubuntu等Debian系发行版使用该命令 sudo yum install libncurses.so.6 // Red Hat、CentOS等Red Hat系发行版使用该命令

三、在性能测试时使用命令行进行监控并生成报告

1.在前台进行资源监控

输入./nmon

可根据提示进行动态查看数据,例如,按c可查看cup信息,再次按c取消。

2.在后台进行资源监控

可以在帮助文档中查询具体用法

shell

./nmon -h

以下方命令为例:

shell

./nmon -ft -s5 -c 1000

nmon的命令其实与JMeter的命令类似

上面命令中

-t:使用高频率的进程展示出来 -f :输出到指定的文件 -s5 -c 1000 :每隔5s采集1次,一共采集1000次(默认采集1天,-s300 -c288)

3.在性能测试中使用

​ 首先需要算出性能测试持续的时间。假设性能测试持续时间为五分钟,那么我们需要将nmon的运行时间设置的长一些。这里我们运行350秒,运行顺序为,先运行nmon,再运行JMeter

shell

./nmon -ft -s5 -c 70

我们可以查看进程,可以发现nmon在运行中,代表在采集中,想要强行停止可以kill掉进程

shell

ps -ef | grep nmon

运行完成后得到结果文件

4.结果文件查看

​ 可以发现nmon生成的报告为.nmon格式,那么我们需要怎么查看我们的结果呢? 这时需要使用nmon analyser来进行解析。

下载同样是在nmon官网点击左侧nmon-Analyser,下拉找到下载即可

将下载下来的压缩包解压,使用Microsoft Office打开nmon analyser v69_2.xlsm,不建议使用WPS打开,因为WPS使用宏是需要付费的

点击按钮上传生成的.nmon文件生成对应excel

可查看各项性能指标

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 731789136,里面有各种测试开发资料和技术可以一起交流哦。

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

这篇关于【JMeter】使用nmon进行性能资源监控的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/533144

相关文章

从零教你安装pytorch并在pycharm中使用

《从零教你安装pytorch并在pycharm中使用》本文详细介绍了如何使用Anaconda包管理工具创建虚拟环境,并安装CUDA加速平台和PyTorch库,同时在PyCharm中配置和使用PyTor... 目录背景介绍安装Anaconda安装CUDA安装pytorch报错解决——fbgemm.dll连接p

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

使用Python创建一个能够筛选文件的PDF合并工具

《使用Python创建一个能够筛选文件的PDF合并工具》这篇文章主要为大家详细介绍了如何使用Python创建一个能够筛选文件的PDF合并工具,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录背景主要功能全部代码代码解析1. 初始化 wx.Frame 窗口2. 创建工具栏3. 创建布局和界面控件4

一文详解如何在Python中使用Requests库

《一文详解如何在Python中使用Requests库》:本文主要介绍如何在Python中使用Requests库的相关资料,Requests库是Python中常用的第三方库,用于简化HTTP请求的发... 目录前言1. 安装Requests库2. 发起GET请求3. 发送带有查询参数的GET请求4. 发起PO

Python进行PDF文件拆分的示例详解

《Python进行PDF文件拆分的示例详解》在日常生活中,我们常常会遇到大型的PDF文件,难以发送,将PDF拆分成多个小文件是一个实用的解决方案,下面我们就来看看如何使用Python实现PDF文件拆分... 目录使用工具将PDF按页数拆分将PDF的每一页拆分为单独的文件将PDF按指定页数拆分根据页码范围拆分

Java中的Cursor使用详解

《Java中的Cursor使用详解》本文介绍了Java中的Cursor接口及其在大数据集处理中的优势,包括逐行读取、分页处理、流控制、动态改变查询、并发控制和减少网络流量等,感兴趣的朋友一起看看吧... 最近看代码,有一段代码涉及到Cursor,感觉写法挺有意思的。注意是Cursor,而不是Consumer

Node.js net模块的使用示例

《Node.jsnet模块的使用示例》本文主要介绍了Node.jsnet模块的使用示例,net模块支持TCP通信,处理TCP连接和数据传输,具有一定的参考价值,感兴趣的可以了解一下... 目录简介引入 net 模块核心概念TCP (传输控制协议)Socket服务器TCP 服务器创建基本服务器服务器配置选项服

如何使用CSS3实现波浪式图片墙

《如何使用CSS3实现波浪式图片墙》:本文主要介绍了如何使用CSS3的transform属性和动画技巧实现波浪式图片墙,通过设置图片的垂直偏移量,并使用动画使其周期性地改变位置,可以创建出动态且具有波浪效果的图片墙,同时,还强调了响应式设计的重要性,以确保图片墙在不同设备上都能良好显示,详细内容请阅读本文,希望能对你有所帮助...

Rust中的注释使用解读

《Rust中的注释使用解读》本文介绍了Rust中的行注释、块注释和文档注释的使用方法,通过示例展示了如何在实际代码中应用这些注释,以提高代码的可读性和可维护性... 目录Rust 中的注释使用指南1. 行注释示例:行注释2. 块注释示例:块注释3. 文档注释示例:文档注释4. 综合示例总结Rust 中的注释

Rust中的Drop特性之解读自动化资源清理的魔法

《Rust中的Drop特性之解读自动化资源清理的魔法》Rust通过Drop特性实现了自动清理机制,确保资源在对象超出作用域时自动释放,避免了手动管理资源时可能出现的内存泄漏或双重释放问题,智能指针如B... 目录自动清理机制:Rust 的析构函数提前释放资源:std::mem::drop android的妙