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. ...
随机推荐
- 《Go 精进之路》 读书笔记 (第一次更新)
<Go 精进之路> 读书笔记.简要记录自己打五角星的部分,方便复习巩固.目前看到p120 Go 语言遵从的设计哲学为组合 垂直组合:类型嵌入,快速让一个类型复用其他类型已经实现的能力,实现 ...
- JVM内存结构模型
- 2022年最新最详细的tomcat安装教程和常见问的解决
文章目录 1.官网直接下载 1.1.jdk的版本和tomcat版本应该相对应或者兼容 1.2. 在官网找对应的tomcat版本进行下载 1.3 .根据电脑版本下载64-bit windows zip( ...
- 二十六、StatefulSet资源控制器
StatefulSet资源控制器 一.statefulset介绍 StatefulSet 是为了解决有状态服务的问题而设计的资源控制器. 匹配 Pod name ( 网络标识 ) 的模式为:(stat ...
- stm32h750移植lvgl
之前没做过ui,只用过lcd画几条线写点字,如果按键.菜单什么的全用线画也太麻烦了,所以需要一个ui库. 听说lvgl用的人很多,就打算裸机移植一下用用.本文移植的lvgl版本是lvgl6.2,也移植 ...
- 【FAQ】关于华为地图服务定位存在偏差的原因及解决办法
一. 问题描述: 华为地图服务"我的位置"能力,在中国大陆地区,向用户展示他们在地图上的当前位置与用户的实际位置存在较大的偏差. 具体差别可以查看下方的图片: 二. 偏差较大的原因 ...
- 聊聊GPU与CPU的区别
目录 前言 CPU是什么? GPU是什么? GPU与CPU的区别 GPU的由来 并行计算 GPU架构优化 GPU和CPU的应用场景 作者:小牛呼噜噜 | https://xiaoniuhululu.c ...
- Oracle数据泵导入dmp文件,报UDI-12154、ORA-12154错误解决办法
1. 数据泵导入dmp文件,报UDI-12154.ORA-12154 1.1 导入命令 impdp cwy_init/init@orcl directory=DATA_PUMP_DIR dumpfil ...
- freeswitch的mod_curl模块
概述 有时候,我们需要在呼叫的过程中,或过程后调用web api接口. freeswitch的mod_curl模块可以很方便的实现web api的接口调用. mod_curl模块默认不安装,需要进入模 ...
- 【Azure API 管理】Azure APIM服务集成在内部虚拟网络后,在内部环境中打开APIM门户使用APIs中的TEST功能失败
问题描述 使用微软API管理服务(Azure API Management),简称APIM. 因为公司策略要求只能内部网络访问,所以启用了VNET集成.集成方式见: (在内部模式下使用 Azure A ...