Jmeter压测手册:脚本配置、服务器环境搭建与运行

        本文记录了我在新公司的首次压测遇到的一些问题以及解决方案。公司服务部署在国外,网络延迟导致的压不上去,需要本地调试脚本,然后用国外服务器压测的过程。同时记录了过程中遇到的一些问题,特别是Jmeter本身占用CPU资源,需要修改参数。

安装包

Jmeter包,已调好配置参数:

通过网盘分享的文件:apache-jmeter-5.6.3.zip
链接: https://pan.baidu.com/s/1-L6ASOdnBwvWi5_gpAW1gw?pwd=4uce 提取码: 4uce 
--来自百度网盘超级会员v3的分享

脚本配置

1、新建线程组

2、脚本配置

新加HTTP请求

脚本配置

添加请求头

添加参数化

注意用相对路径,因为要拷贝到远程机器运行,绝对路径会找不到文件,运行不起来,还没报错。

3、压测报表

虚拟机配置

安装Java环境

1、先从官网下载jdk1.8.0_131.tar.gz,再从本地上传到Linux服务器

2、解压:tar -xzf jdk1.8.0_131.tar.gz,生成文件夹 jdk1.8.0_131

jdk存放目录:/home/azureuser/jmeter/jdk1.8.0_451

修改配置:vi /etc/profile

export JAVA_HOME=/home/azureuser/jmeter/jdk1.8.0_451

export PATH=$JAVA_HOME/bin:$PATH

加载配置 : source /etc/profile

查看是否安装成功:java -version

安装Jmeter

1、本地Jmeter打包。最好用跟本机一样的jmeter,不会出现插件不一致等导致的运行不起来

2、传到服务器

3、解压缩

 tar -xvzf apache-jmeter-5.6.3.tgz 

unzip

jmeter路径:/home/azureuser/jmeter/apache-jmeter-5.6.3

4、配置Jmeter环境变量。

vi /etc/profile,再添加如下变量

export JMETER_HOME=/home/azureuser/jmeter/apache-jmeter-5.6.3

export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:

export PATH=$JMETER_HOME/bin:$JAVA_HOME/bin:$PATH

5、source /etc/profile (让配置文件立马生效)

6、查看是否安装成功,执行命令:jmeter -v

设置Jmeter启动内存

1.创建setenv.sh文件

在jmeter的bin目录下新建setenv.sh配置文件,在文件中配置jvm参数

export JVM_ARGS="-Xms4096m -Xmx4096m -XX:MaxMetaspaceSize=2048m"

大小参考本机可用内存,50%-70%之间

修改Jmeter参数

 1、system.properties

增加mode=StrippedBatch

2、解决timewait问题
修改所有jmeter主机-负载机配置 使用httpclient4客户端
jmeter.properties
httpclient4.time_to_live=300000
httpclient4.validate_after_inactivity=1000
httpclient4.request_sent_retry_enabled=true
httpclient4.retrycount=2
hc.parameters.file=hc.parameters
httpclient.reset_state_on_thread_group_iteration=false

3、hc.parameters
http.connection.stalecheck$Boolean=true

4、客户端配置

运行jmeter

jmx文件单独放/home/azureuser/jmeter/jmx
jmeter安装于/home/azureuser/jmeter/apache-jmeter-5.6.3

本地文件上传到服务器,注意使用到的数据文件也要传过去,可以整个目录传(使用的ssh软件:electerm)

进入 jmx所在目录

jmeter -n -t hawbTracks.jmx -l result_hawbTracks_05310813.jtl -L DEBUG

jmeter -n -t hawbTracks.jmx -l result_hawbTracks_05312207.jtl -e -o ./result  生成html报告,result 目前提前清空

jmeter -n -t hawbTracks.jmx -l result_hawbTracks_06031927.jtl -e -o ./06031927_result

监控查看

1、压测指标QPS、RT。关注响应时间增加明显,QPS增量低,无需再加QPS,防止压挂服务器。

2、服务器情况查看

机器情况以Grafa查看

服务qps、响应,以及响应时间明细用skywalking查看

3、从网关层压测,所以网关服务器性能也需要关注下

4、压测服务器的性能也需关注下。可以开多个窗口,top命令看服务器情况

常见命令:

top:本机性能指标查看,1 - 每个cpu指标查看,MiB Mem-内存查看

ps -ef pid : 进程查看

报告查看

1、报告回传到本机

2、打开jtl文件

3、result中index.html浏览器打开

使用jmeter -n -t hawbTracks.jmx -l result_hawbTracks_05312207.jtl -e -o ./result  生成html报告,可以直接查看

问题记录

1、网络损耗

本地压测由于是中国网段压测美国网段,网络损耗巨大。对比如下:

本地压测情况,3个并发

服务器压测情况,压测服务器与被压测服务器都在美国

对比发现,网络损耗在600ms。所以需要使用同区域压测服务器来压,得到真实的性能情况。

2、Jmeter中响应时间疑惑

现象:本地Jmeter压测时间稳定在600ms左右,但是POSTMAN是偶尔600ms多,多数在200ms。

原因:Postman接口发送使用的端口,会有链接缓存,不会每次新建连接。现象上佐证:隔段时间请求是600+ms,不间隔再次访问是200ms。

3、服务端Jmeter运行报错,jp@gc组件找不到

原因:运行的官网下载的jmeter,里面没有相关组件导致

4、服务端Jmeter运行无数据生成,无报错,直接停止了

配置的脚本的,csv文件配置的windows中绝对路径,拷贝到linux上,找不到文件,导致运行不起来。

5、压测机本身性能问题,导致QPS上不去

1、关闭部分java程序。 ps -ef pid查看进程信息

2、增加jmeter内存大小

3、多台机器压测

4、修改jmeter配置 - 有用

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

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

相关文章

立定跳远--二分枚举答案+cehck

P10909 [蓝桥杯 2024 国 B] 立定跳远 - 洛谷 #include<bits/stdc.h> using namespace std; #define N 100011 typedef long long ll; typedef pair<int,int> pii; int n,m; int a[N]; int an; bool check(int l) {int pos0;int c1;int wm;for(int i1;i<n;i){if…

蓝桥杯20112 不同的总分值

问题描述 在今年蓝桥杯的决赛中&#xff0c;一共有 10 道题目&#xff0c;每道题目的分数依次为 5 分&#xff0c;5 分&#xff0c;10 分&#xff0c;10 分&#xff0c;15 分&#xff0c;15 分&#xff0c;20 分&#xff0c;20 分&#xff0c;25 分&#xff0c;25 分。 假设某…

[论文阅读] 系统架构 | 零售 IT 中的微服务与实时处理:开源工具链与部署策略综述

零售IT中的微服务与实时处理&#xff1a;开源工具链与部署策略综述 论文信息 Microservices and Real-Time Processing in Retail IT: A Review of Open-Source Toolchains and Deployment Strategies Aaditaa Vashisht (Department of Information Science and Engineering, …

【面板数据】A股上市公司注册地所在地数据集(1991-2023年)

数据简介&#xff1a;上市公司注册地所在地数据指企业在工商行政管理部门登记注册的法定住所信息&#xff0c;涵盖省、市、区三级行政区划及详细地址。该数据是公司法律身份的核心标识&#xff0c;直接影响税务管辖、诉讼归属、政策适用及市场准入等关键环节。更是连接企业行为…

21、Create React App的使用

Create React App 是官方支持的创建单页 React 应用程序的方法。提供了一个现代的构建设置&#xff0c;无需配置。它虽然只是一个包&#xff0c;但不建议全局安装。如果本地安装过可先卸载&#xff0c;这样能保证每次创建项目时使用最新版本的功能。 开始使用 可以使用npx&…

CSS盒子 flex弹性布局

使用flex弹性布局页面效果图&#xff08;源代码在文章末尾&#xff09;&#xff1a; 目录 flex弹性布局 一、基本容器 二、设置主轴方向 三、设置主轴对齐方式 四、设置交叉轴上的对齐方式 flex弹性布局 一、基本容器 Flexbox 是 CSS3 引入的一种一维布局模型&#xff0…

数据结构与算法-线性表-线性表的应用

1 线性表 1.5 线性表的应用 1.5.1 线性表的合并 【算法步骤】 分别获取 LA 表长 m 和 LB 表长 n 。从 LB 中第 1 个数据元素开始&#xff0c;循环 n 次执行以下操作&#xff1a; 从 LB 中查找第 i 个数据元素赋给 e &#xff1b;在 LA 中查找元素 e &#xff0c;如果不存在&…

流数据机器学习框架 CapyMOA

环境准备: pip install capymoa 使用 HoeffdingTree 对流数据做在线分类: from capymoa.streams import FileStream from capymoa.learners import HoeffdingTreeClassifier from capymoa.evaluation import ProgressiveEvaluator# 1. 构造流&#xff1a;假设 data/stream…

QEMU源码全解析 —— 块设备虚拟化(27)

接前一篇文章:QEMU源码全解析 —— 块设备虚拟化(26) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM源码解析与应用》 —— 李强,机械工业出版社 Virt

Cilium动手实验室: 精通之旅---19.Golden Signals with Hubble and Grafana

Cilium动手实验室: 精通之旅---19.Golden Signals with Hubble and Grafana 1. Lab 环境2. 部署测试应用2.1 7层可见性的网络2.1.1 允许所有命名空间2.1.2 DNS 可见性2.1.3 L7-egress-visibility 2.2 检查 Deployments2.3 在 Hubble UI 中查看 3. Grafana 选项卡3.1 Grafana 中…

常见文件系统格式有哪些

PART.01 常见文件系统格式有哪些 常见的文件系统格式有很多&#xff0c;通常根据使用场景&#xff08;Windows、Linux、macOS、移动设备、U盘、硬盘等&#xff09;有所不同。以下是一些主流和常见的文件系统格式及其特点&#xff1a; 一、Windows 常见文件系统格式 Digital …

React Native 弹窗组件优化实战:解决 Modal 闪烁与动画卡顿问题

&#x1f4cc; 前言 在移动端开发中&#xff0c;用户对动画的流畅性和过渡自然性有着极高的期待。最近我对一个使用 react-native-modal 实现的 Alert 弹窗组件进行了优化&#xff0c;成功解决了闪烁和卡顿问题&#xff0c;并显著提升了用户体验。 本篇博客将带你深入了解优化…

智能客服系统开发方案:RAG+多智能体技术实现

智能客服系统开发方案:RAG+多智能体技术实现 一、系统架构设计 #mermaid-svg-hKDXil2J0xV064Q5 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-hKDXil2J0xV064Q5 .error-icon{fill:#552222;}#mermaid-svg-hKDXil2…

【Kafka】消息队列Kafka知识总结

【Kafka】消息队列Kafka知识总结 【一】消息队列【1】什么是消息队列【2】消息队列有什么用&#xff08;1&#xff09;异步处理&#xff08;2&#xff09;削峰/限流&#xff08;3&#xff09;降低系统耦合性&#xff08;4&#xff09;实现分布式事务&#xff08;5&#xff09;顺…

微信小程序开发 RangeError: Maximum call stack size exceeded

通常是由于​​调用栈深度超限​​&#xff08;如无限递归、过深的函数调用链或数据绑定循环&#xff09;导致。以下是具体解决方案&#xff1a; 一、核心原因分析 ​​无限递归​​ 函数直接或间接调用自身且无终止条件&#xff0c;例如事件处理函数中错误触发自身。​​数据…

mapbox进阶,切片网格生成实现

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️line线图层样式1.4 ☘️symbol符号图层…

Mysql 函数concat、concat_ws和group_concat

1.concat concat()函数是将多个字符串组合在一起&#xff0c;形成一个大的字符串&#xff1b;如果连接的字符串中存在一个为NULL&#xff0c;则输出的结果为NULL&#xff0c;语法格式为&#xff1a; concat(str1,str2,....strn) -- 1、字符之间不加连接符 mysql> select c…

“在同一事务中“ 的含义

一、"在同一事务中" 的核心含义 "在同一事务中" 指多个数据库操作共享同一个事务上下文&#xff0c;具有以下特点&#xff1a; 原子性保证&#xff1a;所有操作要么全部成功提交&#xff0c;要么全部失败回滚。隔离性共享&#xff1a;操作使用相同的隔离…

【Create my OS】从零编写一个操作系统

前言&#xff1a; 相信每个自学操作系统的同学&#xff0c;大致学习路线都离不开 HIT-OS、MIT-6.S081、MIT-6.824、MIT-6.828等经典的公开课。但学习完这些经典公开课并完成相应的Lab&#xff0c;很多同学脑海中对于操作系统的知识其实都是零散的&#xff0c;让你从头开始编写一…

计算机视觉与深度学习 | 低照度图像增强算法综述(开源链接,原理,公式,代码)

低照度图像增强算法综述 1 算法分类与原理1.1 传统方法1.2 深度学习方法2 核心算法详解2.1 多尺度Retinex (MSRCR) 实现2.2 SCI自校准光照学习2.3 自适应伽马校正2.4 WaveletMamba架构3 开源资源与实现3.1 主流算法开源库3.2 关键代码实现4 评估与实验对比4.1 客观评价指标4.2 …