Jmeter 之在linux中监控Memory、CPU、I/O资源等操作方法
在做性能测试时,单纯的只看响应时间、错误率、中间值远远不够的,有时需要监控服务cpu、内存等指标来判断影响性能的瓶颈在哪。
操作步骤:
一、Linux下配置jmeter环境
1、在linux环境下安装jdk。
# rpm -ivh jdk-8u121-linux-x64.rpm
2、检查java是否安装成功。
# java -version
3、将apache-jmeter-5.1.zip传到服务器上。
# unzip apache-jmeter-5.1.zip
4、进入jmeter.bat文件所在路径:
# cd apache-jmeter-5.1/bin进入目录。
二、插件下载
在官网下载的Jmeter是没有监控资源服务的功能的,只能借助插件实现。
1、需要下载的第三方插件有:JMeterPlugins-Standard , JMeterPlugins-Extras,版本需要与Jmeter版本兼容,下载下来解压得到jar包后,放到jmeter安装路径下的apache-jmeter-5.1/lib/ext文件夹里,重启jmeter
下载路径:https://jmeter-plugins.org/downloads/old/
2、下载 ServerAgent-2.2.1.zip,下载后上传到被测服务器上,并使用命令解压unzip ServerAgent-2.2.1.zip
3、进入到解压后的ServerAgent文件中,使用命令启动监控服务 bash startAgent.sh
三、脚本编写
1、根据具体的业务编写测试脚本,设置线程数、脚本持续时间等参数
2、添加 jp@gc - PerfMon Metrics Collector监听 CPU 、内存、网络、I/O等资源,路径为右击线程组->添加->监听器->jp@gc - PerfMon Metrics Collector

3、配置jp@gc - PerfMon Metrics Collector

注意:文件名一定要单独写个文件来保存监控的数据,否则在图表中无数据展示
4、添加 jp@gc - Response Times Over Time监控响应时间走势、添加 jp@gc - Transactions per Second监控qpt走势,路径同上
5、在linux下执行编写好的脚本,执行命令 ./jmeter.sh -n -t file -l logfile,如下:
./jmeter.sh -n -t /home/app_comm/nucdata/nuc环境压测_50_n.jmx -l /home/app_comm/nucdata/9_27_50_n_result.jtl
6、执行完后在jp@gc - PerfMon Metrics Collector上查看监控的资源图形结果

7、在聚合报告中查看整体情况

8、在 jp@gc - Response Times Over Time中查看时间响应走势

9、在 jp@gc - Transactions per Second中查看qpt走势

警告:
若出现以下错误,请查看版本是否兼容
2020-09-21 17:46:59,698 INFO o.a.j.e.StandardJMeterEngine: Running the test!
2020-09-21 17:46:59,698 INFO o.a.j.s.SampleEvent: List of sample_variables: []
2020-09-21 17:46:59,698 ERROR o.a.j.JMeter: Uncaught exception in thread Thread[StandardJMeterEngine,6,main]
java.lang.NoSuchMethodError: org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter(Ljava/text/DateFormat;)V
at kg.apc.jmeter.JMeterPluginsUtils.doBestCSVSetup(JMeterPluginsUtils.java:256) ~[jmeter-plugins-cmn-jmeter-0.3.jar:?]
at kg.apc.jmeter.perfmon.PerfMonCollector.setupSaving(PerfMonCollector.java:136) ~[jmeter-plugins-perfmon-2.1.jar:?]
at kg.apc.jmeter.perfmon.PerfMonCollector.testStarted(PerfMonCollector.java:113) ~[jmeter-plugins-perfmon-2.1.jar:?]
at org.apache.jmeter.reporters.ResultCollector.testStarted(ResultCollector.java:351) ~[ApacheJMeter_core.jar:5.2]
at kg.apc.jmeter.vizualizers.CorrectedResultCollector.testStarted(CorrectedResultCollector.java:28) ~[jmeter-plugins-cmn-jmeter-0.3.jar:?]
at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:206) ~[ApacheJMeter_core.jar:5.2]
at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:381) ~[ApacheJMeter_core.jar:5.2]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_221]
可参考 https://www.cnblogs.com/SunshineKimi/p/11361216.html
Jmeter 之在linux中监控Memory、CPU、I/O资源等操作方法的更多相关文章
- Linux中监控命令top命令使用方法详解
收集了两篇关于介绍Linux中监控命令top命令的详细使用方法的文章.总的来说,top命令主要用来查看Linux系统的各个进程和系统资源占用情况,在监控Linux系统性能方面top显得非常有用,下面就 ...
- Linux 性能监控之CPU&内存&I/O监控Shell脚本2
Linux 性能监控之CPU&内存&I/O监控Shell脚本2 by:授客 QQ:1033553122 思路: 捕获数据->停止捕获数据->提取数据 备注:一些命令的输 ...
- Linux 性能监控之CPU&内存&I/O监控Shell脚本1
Linux 性能监控之CPU&内存&I/O监控Shell脚本1 by:授客 QQ:1033553122 #!/bin/bash # 获取要监控的本地服务器IP地址 IP=`if ...
- linux中使用top获取进程的资源占用信息
在linux中使用top获取进程的资源占用信息: Cpu(s): 1.0%us, 0.0%sy, 0.0%ni, 98.3%id, 0.7%wa, 0.0%hi, 0.0%si, 0.0 ...
- 如何在 Linux 中找出 CPU 占用高的进程
1) 怎样使用 top 命令找出 Linux 中 CPU 占用高的进程 在所有监控 Linux 系统性能的工具中,Linux 的 top 命令是最好的也是最知名的一个.top 命令提供了 Linux ...
- 在 Linux 中找出 CPU 占用高的进程
列出系统中 CPU 占用高的进程列表来确定.我认为只有两种方法能实现:使用 top 命令 和 ps 命令.出于一些理由,我更倾向于用 top 命令而不是 ps 命令.但是两个工具都能达到你要的目的,所 ...
- linux中监控CPU、内存和磁盘状态的shell脚本。(centos7)
这篇博客中所写的脚本,在实际工作中并没有什么卵用,工作中并不会用到这种脚本去监控.不过自己写一遍,可以让初学者对CPU.内存.磁盘等一些基础知识和基础命令更加了解. 1.利用vmstat工具监控CPU ...
- Linux 性能监控 : CPU 、Memory 、 IO 、Network
一.CPU 1.良好状态指标 CPU利用率:User Time <= 70%,System Time <= 35%,User Time + System Time <= 70% 上下 ...
- Linux中找到占用cpu最高的线程
在工作中,经常会碰到CPU占用100%的情况,那如何找到是那个线程占用了cpu呢? 1. top命令,找到cpu占用最高的进程 2. 查看该进程的线程, top -p <pid> 3. ...
随机推荐
- vue中修改滚动条样式
这是一个在VUE中的设置滚动条样式的方法,该方法只适用于Chrome浏览器,亲测在火狐不适用 样式写在 APP.vue 中,可以用在全局,如果只用在那个盒子中,只需要在::前面加上盒子的class名就 ...
- Wine 安装迅雷5.8.14.176
测试过的系统版本:Kubuntu 22.04 测试过的Wine版本 Wine7.8 程序下载地址: https://pan.baidu.com/s/1pSgunVH3WtACssX5we3DdQ 提取 ...
- 关于docker创建容器报错-docker: Error response from daemon: runtime "io.containerd.runc.v2" binary not installed
今天在对一台服务器(docker相关的业务服务器)进行OS补丁时,默认使用的 yum update -y 对所有的安装包进行了升级 升级完成后,让应用方检查确认应用及功能是否一切正常,如果不正常,严重 ...
- POJ2823 滑动窗口 (单调队列)
来学习一下单调队列: 他只可以从队尾入队,但可以从队尾或队首出队,来维护队列的单调性.单调队列有两种单调性:元素的值单调和元素的下标单调. 单调队列可以用来优化DP.状态转移方程形如dp[i]=min ...
- Docker容器技术基础
Docker基础 目录 Docker基础 容器(Container) 传统虚拟化与容器的区别 Linux容器技术 Linux Namespaces CGroups LXC docker基本概念 doc ...
- 一篇文章带你掌握主流办公框架——SpringBoot
一篇文章带你掌握主流办公框架--SpringBoot 在之前的文章中我们已经学习了SSM的全部内容以及相关整合 SSM是Spring的产品,主要用来简化开发,但我们现在所介绍的这款框架--Spring ...
- DelCrLfSpace V0.9
开发界面 Option Explicit 'SourceTextBox 是上面的源框 'ResultTextBox 是下面的处理预览框 'Form KeyPreview = True Private ...
- 通过tkinter列出全部字体名称
通过tkinter列出windows系统全部字体名称 通过 tkinter.font 的 families() 函数实现 import tkinter import tkinter.font # 把p ...
- 基于FPGA的SATA3.0主机控制器IP
SATA3.0 Host Controller IP SATA3.0 Host IP不仅实现了SATA协议的PHY(物理层).Link(链路层)和TRN(传输层),并且实现了CMD(命令层)和APP( ...
- Linux网络通信(线程池和线程池版本的服务器代码)
线程池 介绍 线程池: 一种线程使用模式.线程过多会带来调度开销,进而影响缓存局部性和整体性能.而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务.这避免了在处理短时间任务时创建与销毁线程的 ...