当前位置: 首页 > news >正文

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配置 - 有用

相关文章:

  • 将后端数据转换为docx文件
  • 13.18 Ollama+LLaMA3企业级部署实战:6步打造私有化大模型高效引擎
  • <8>-MySQL复合查询
  • 前端三剑客基础案例001
  • 下载指定版本的matplotlib
  • 图片去水印,图片变清晰,完成免费
  • Java并发编程实战 Day 21:分布式并发控制
  • ONLYOFFICE 的AI技巧-1.集成OCR、文本转图像、电子表格集成等新功能
  • aflplusplus:开源的模糊测试工具!全参数详细教程!Kali Linux教程!(一)
  • 激光雷达 + 视觉相机:高精度位姿测量方案详解
  • Altera系列FPGA基于ADV7180解码PAL视频,纯verilog去隔行,提供2套Quartus工程源码和技术支持
  • 多个机器人同时加载在rviz及gazebo同一个场景中
  • Blender 简介 ~ 总结,如何下载Blend格式模型
  • UDS协议中0x31服务(Routine Control)详解及应用
  • 网络安全防护:点击劫持
  • uniapp中vue3 ,uview-plus使用!
  • 【SystemVerilog 2023 Std】第5章 词法约定 Lexical conventions (2)
  • 3款工具打造递进图:快速入门与个性化定制的实用指南
  • 【DNS解析】DNS解析从入门到精通
  • 音视频的前端知识
  • 一个人做网站 优帮云/营销型公司网站建设
  • 网站设计怎么做链接/图片外链生成工具在线
  • 网站流量怎么赚钱/企业网络推广计划书
  • 国内做网站最大的公司/南京网站seo
  • 网站编辑能在家做/广州软文推广公司
  • 图片网站建设/百度关键词热度查询工具