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

压力测试-商场项目

1.压力测试

压力测试是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求、测试系统在不同压力情况下的效率状况,以及系统可以承受的压力情况。然后做针对性的测试与分析,找到影响系统性能的瓶颈,评估系统在实际使用环境下的效率情况,评价系统性能以及判断是否需要对应用系统进行优化处理或结构调整。并对系统资源进行优化。

1.1在压力测试中我们会涉及到相关的一些性能指标:

1. 响应时间(Response Time:RT):从客服端发送请求开始到获取到服务器的响应结果的总的时间
2. HPS(Hits Per Second):每秒点击的次数
3. TPS(Transaction Per Second):系统每秒处理的交易数,也叫会话次数,一套完整的业务流程
4. QPS(Query Per Second):系统每秒处理查询的次数

在互联网企业中,如果一个业务有且仅有一个请求连接,那么TPS=QPS=HPS的,而在一般情况下用TPS来衡量整个业务流程,用QPS来衡量接口查询的次数,用HPS来衡量服务器单击请求。

我们在测试的时候就会通过这些指标(HPS,TPS,QPS)的数据来衡量系统的系统,指标越高说明系统性能越好,在一般情况下,各个行业的指标范围有着比较大的差异,下面简单的列举了下,仅供参考

金融行业:1000TPS~50000TPS
保险行业:100TPS~100000TPS
制造业:10TPS~5000TPS
互联网大型网站:10000TPS~1000000TPS
互联网其他:1000TPS~50000TPS

 1.2压测相关名词

名词说明
最大响应时间用户发出请求到系统做出响应的最大时间
最少响应时间用户发出请求到系统做出响应的最少时间
90%响应时间指所有用户的响应时间进行排序,第90%的响应时间

1.3当我们从外部来看,性能测试主要要关注这三个性能指标 

指标说明
吞吐量每秒钟系统能够处理的请求数,任务数
响应时间服务处理一个请求或一个任务的耗时
错误率一批请求中结果出错的请求所占的比例

2.压测工具JMeter

官网地址:https://jmeter.apache.org/download_jmeter.cgi 下载后解压即可,然后进入到bin目录下双击 JMeter.bat文件即可启动

2.1JMeter基本操作

2.1.1添加线程组

线程组的作用就是定义任务的相关属性,比如每秒执行多少线程,重复多少次该操作

2.2取样器

在定义了线程组后,我们得继续定义每个线程的操作行为,也就是创建对应的取样器,在取样器中我们定义要访问的服务的协议及地址信息。

2.3 然后我们需要在取样器中定义服务的信息

 2.3监视器

在取样器中我们定义了要访问的服务信息,然后我们就要考虑请求后我们需要获取任务的相关的指标信息。这时就用到了监视器。

2.4对应的结果数据有 查看结果树 汇总报告 聚合报告 ,查看结果对应的图形 汇总图 ..... 

 3.JMeter Address 占用的问题

搜索之后发现需要在regedit中添加注册表项MaxUserPort,TcpTimedWaitDelay重启一下就可以解决了。

3.1解决方法:

打开注册表:ctrl+r 输入regedit
进入注册表,路径为:\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,(十进制)设置为30秒。名称:TcpTimedWaitDe,值:30
新建DWORD值,(十进制)最大连接数65534。名称:MaxUserPort,值:65534

4.性能优化

4.1考虑影响服务性能的因素

数据库、应用程序,中间件(Tomcat,Nginx),网络和操作系统等

我们还得考虑当前的服务属于

CPU密集型:计算比较影响性能--->添加CPU,加机器
IO密集型:网络IO,磁盘IO,数据库读写IO,Redis读写IO --》缓存,加固态硬盘,添加网卡

5.JVM简单了解

5.1JVM的内存结构

5.2JVM中对象的存储和GC 

6.jconsole和jvisualvm 

jconsole和jvisualvm是JDK自带监控工具。可以帮助我们更好的查看服务的相关监控信息,jvisualvm功能会更加的强大些。

6.1jconsole

6.2jvisualvm

因为是jdk6.0后自带的,我们同样的可以在cmd或者搜索框中找到

 

7.商场系统的压测 

商场系统的链路

测试下相关的组件的性能

7.1单独测试nginx

7.2单独测试gateway

 7.3单独测试商品服务

  7.4Nginx+Gateway+服务

 

压测内容压力测试的线程数吞吐量/s90%响应时间99%响应时间
Nginx50228929327
Gateway504000659
单独测试服务503273229
Gateway+服务5050651666
Nginx+Gateway50
Nginx+Gateway+服务50124576118
一级菜单50279264384
三级分类压测505.41205012708
首页全量数据50GG

8.Nginx实现动静分离优化系统

通过上面的压力测试我们可以发现如果后端服务及处理动态请求又处理静态请求那么他的吞吐量是非常有限的,这时我们可以把静态资源存储在Nginx中。

 8.1 静态资源存储

把服务中的静态资源上传到Nginx服务中,把静态资源文件打成一个zip包,然后拖拽到Linux中,然后我们通过

8.1.1将静态文件放到这个目录

 8.1.2修改nginx配置文件

在Nginx的配置文件中指定static开头的请求的处理方式

 

相关文章:

压力测试-商场项目

1.压力测试 压力测试是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内,向系统发送预…...

IDEA中文UT方法执行报错问题、wps默认保存格式

wps默认保存格式、IDEA中文UT方法执行报错问题 背景 1、wps修改文件后,编码格式从UTF-8-bom变成UTF-8(notepad可以查看); 2、IDEA中文UT执行报错: 解决方案 1、语言设置中不要勾选 “Beta版。。。。” 2、cmd中执…...

Vue如何实现编程式导航声明方法,前进和后退导航

编程式导航声明方法,前进和后退导航 在router中设置路由导航跳转函数 只要发生跳转 导航的声明函数 访问控制系统如何形成 就这三种 导航守卫的案例,写一个Main.Vue 和login .Vue 后台主页 如果想要展示后台主页,就用这种方法 想实现路由跳转…...

torch.load 报错 ModuleNotFoundError 或 AttributeError

Python 3.11.3 (main, Apr 7 2023, 19:25:52) [Clang 14.0.0 (clang-1400.0.29.202)] on darwin Type "help", "copyright", "credits" or "license" for more information.正常情况下,我们会使用 torch.save 保存模型的 …...

前端,js , Error in created hook: TypeError ,有bug了

怎么兄弟,遇到bug了???你开心吗,哈哈哈哈...

百度文心千帆大模型平台:企业级大模型服务的新航标

随着人工智能和大数据的快速发展,大模型平台正越来越受到各大企业和个人开发者的青睐。本文将以百度最新推出的文心千帆大模型平台为例,深入分析其在国家战略布局,经济发展趋势,市场变化动向和技术研发周期等方面的影响和应用。同…...

uniApp低功耗蓝牙一键开门、多对多查找、数组匹配数组、开锁

文章目录 htmlJavaScript坑 html <view class"m_t_36"><view class"w_50_ h_100 lh_100 m_l_a m_r_a bc_409eff radius_10 color_fff ta_c" click"openBluetoothAdapter()">一键开门</view> </view>JavaScript export…...

类和对象|六个默认成员函数|const成员函数|运算符重载

文章目录 默认成员构造函数1. 构造函数1.1 概念1.2 特性 2. 析构函数2.1 概念2.2 特性 3. 拷贝构造函数3.1 概念3.2 特性 4. 运算符重载4.1 赋值重载4.2 自增自减重载4.3 取地址操作符重载 5. const成员函数6. 取地址重载 默认成员构造函数 上一节我们说过&#xff0c;空类的大…...

从源码角度去深入分析关于Spring的异常处理ExceptionHandler的实现原理

ExceptionHandler的作用 ExceptionHandler是Spring框架提供的一个注解&#xff0c;用于处理应用程序中的异常。当应用程序中发生异常时&#xff0c;ExceptionHandler将优先地拦截异常并处理它&#xff0c;然后将处理结果返回到前端。该注解可用于类级别和方法级别&#xff0c;…...

04mysql查询语句之查询与分页02

1. 所有有门派的人员信息 &#xff08; A、B两表共有&#xff09; INSERT INTO t_dept(deptName,address) VALUES(华山,华山); INSERT INTO t_dept(deptName,address) VALUES(丐帮,洛阳); INSERT INTO t_dept(deptName,address) VALUES(峨眉,峨眉山); INSERT INTO t_dept(deptN…...

原型模式——对象的克隆

1、简介 1.1、概述 可以通过一个原型对象克隆出多个一模一样的对象&#xff0c;该模式被称为原型模式。 在使用原型模式时&#xff0c;需要首先创建一个原型对象&#xff0c;再通过复制这个原型对象来创建更多同类型的对象。 1.2、定义 原型模式&#xff08;Prototype Patt…...

[SQL挖掘机] - 多表连接

介绍: 在 SQL 中&#xff0c;多表连接是指将多个表根据某些条件进行联接&#xff0c;以获取相关联的数据。这允许我们跨多个表进行查询&#xff0c;并且根据表之间的关系获取所需的结果。 作用: 当在多个表中存储相关数据时&#xff0c;使用多表连接可以将这些表组合起来以获…...

Day 14 C++ 对象的初始化和清理

目录 为什么要进行对象的初始化和清理 构造函数和析构函数 构造函数&#xff08;Constructor&#xff09; 构造函数语法 调用时机 构造函数的调用方式 括号法 显式法 隐式转换法 构造函数分类 分类方式 按参数分为有参构造和无参构造 按类型分为普通构造和拷贝构造…...

Delphi7最佳登录窗体设计

Delphi7我们这里用登录窗体来做演示。输入正确用户名和密码后&#xff0c;登录窗体释放&#xff0c;显示主窗体。 方法/步骤 1.打开Delphi7集成开发环境&#xff0c;在默认工程的Form1窗体放置一个Label1控件&#xff0c;拖动控件边界调整大小&#xff0c;并将Object Inspect…...

动脑学院Jetpack Compose学习笔记

最近b站学习了一下Compose相关内容&#xff0c;整理了相关笔记&#xff0c;仅供大家参考。 资源链接如下&#xff0c;象征性收取1个积分 https://download.csdn.net/download/juliantem/88125198...

Qt中线程的使用

Qt中线程的使用 在qt中线程的使用有两种方式&#xff0c;第一种就是创建一个类继承QObject类&#xff0c;之后使用moveToThread函数将线程添加到类中。另一种就是创建一个类继承QThread类&#xff0c;在类中实现run函数。 第一种方式&#xff1a; 1、首先创建一个自定义的类…...

基于YOLOv8开发构建蝴蝶目标检测识别系统

在前面的一篇博文中已经很详细地描述了如何基于YOLOv8开发构建自己的个性化目标检测模型&#xff0c;感兴趣的话可以看下&#xff1a; 《基于YOLOv8开发构建目标检测模型超详细教程【以焊缝质量检测数据场景为例】》 本文的主要目的就是基于YOLOv8来开发构建细粒度的蝴蝶目标…...

【已解决】电脑连上网线但无法上网

文章目录 案例情况解决方案必要的解决方法简要概括详细步骤1、打开控制面板2、打开更改适配器设置3、 找Internet协议版本44、修改配置 可能有用的解决方法 问题解决原理Internet 协议版本 4&#xff08;TCP/IPv4&#xff09;确保IP地址和DNS服务器设置为自动获取 案例情况 网…...

Linux 学习记录57(ARM篇)

Linux 学习记录57(ARM篇) 本文目录 Linux 学习记录57(ARM篇)一、外部中断1. 概念2. 流程图框 二、相关寄存器1. GIC CPU Interface (GICC)2. GIC distributor (GICD)3. EXTI registers 三、EXTI 寄存器1. 概述2. 内部框图3. 寄存器功能描述4. EXTI选择框图5. EXTI_EXTICR1 &…...

Doris注意事项,Doris部署在阿里云,写不进去数据

1.Doris官网 Doris官网https://doris.apache.org/ 2.根本原因 本地idea访问FE&#xff0c;FE会返回BE的地址&#xff0c;但是在服务器上通过ip addr查看&#xff0c;发现只有局域网IP&#xff0c;所以FE返回了局域网的IP&#xff0c;导致idea连接不上BE 3.解决办法 重写Ba…...

重新定义Android设备管理:告别命令行,拥抱可视化操作新时代

重新定义Android设备管理&#xff1a;告别命令行&#xff0c;拥抱可视化操作新时代 【免费下载链接】FastbootEnhance A user-friendly Fastboot ToolBox & Payload Dumper for Windows 项目地址: https://gitcode.com/gh_mirrors/fa/FastbootEnhance 你是否曾经面对…...

5分钟终极指南:如何用Python-for-Android将Python代码变成Android应用

5分钟终极指南&#xff1a;如何用Python-for-Android将Python代码变成Android应用 【免费下载链接】python-for-android Turn your Python application into an Android APK 项目地址: https://gitcode.com/gh_mirrors/py/python-for-android 想要用你熟悉的Python语言开…...

Gemini KYC合规沙盒实战(仅限首批200家持牌机构开放):如何用3步完成eIDAS 2.0兼容性认证与审计留痕闭环

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Gemini KYC流程优化 Gemini 交易所的 KYC&#xff08;Know Your Customer&#xff09;流程长期以来以严谨著称&#xff0c;但用户反馈表明&#xff0c;传统表单提交人工审核模式存在平均 3.2 天的等待延…...

仅限前500名开发者获取:ChatGPT+Tableau自动化连接器私有部署包(含OAuth2.0审计日志模块)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;ChatGPT数据可视化建议 在利用ChatGPT辅助数据分析与可视化时&#xff0c;关键在于将模型生成的结构化洞察高效映射到可交互、可解释的图表中。以下实践建议聚焦于提升输出质量与工程落地性。 优先选择语义明…...

Trivy容器镜像漏洞扫描原理与企业级实战指南

1. 为什么是Trivy&#xff1f;不是Clair、Notary&#xff0c;也不是Docker Scout的内置扫描 我第一次在CI流水线里看到镜像扫描失败的告警邮件时&#xff0c;正蹲在客户现场调试一个K8s集群的网络策略。邮件标题写着“critical vulnerability in nginx:1.21.6-alpine”&#x…...

MySQL 空间数据类型 GIS:地图功能的数据库实现

开场白 做 LBS&#xff08;基于位置的服务&#xff09;的时候&#xff0c;很多人直接用经纬度两个字段存&#xff0c;然后算距离用公式在应用层算。数据量小的时候没问题&#xff0c;数据一大&#xff0c;每次查附近的人都要全表扫描算一遍距离&#xff0c;性能根本扛不住。我…...

BilibiliDown:3分钟快速掌握B站视频下载的完整解决方案

BilibiliDown&#xff1a;3分钟快速掌握B站视频下载的完整解决方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/…...

渗透测试学习路线:从原生终端到实战靶场的系统路径

1. 这不是“速成课”&#xff0c;而是一张你真正能踩出脚印的地图很多人点开“渗透测试学习路线”时&#xff0c;心里想的是&#xff1a;学三个月能不能接单&#xff1f;能不能进红队&#xff1f;能不能年薪30万&#xff1f;我试过在2019年用两周时间刷完某平台全部CTF入门题&a…...

打造你的专属Minecraft体验:NightX Client深度解析与实用指南

打造你的专属Minecraft体验&#xff1a;NightX Client深度解析与实用指南 【免费下载链接】NightX-Client Minecraft Forge 1.8.9 hacked client, Based on LiquidBounce 项目地址: https://gitcode.com/gh_mirrors/ni/NightX-Client 你是否曾想过在Minecraft中拥有超越…...

对比直接使用厂商API体验Taotoken聚合服务的稳定性

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比直接使用厂商API体验Taotoken聚合服务的稳定性 在集成大模型能力到实际业务的过程中&#xff0c;开发者除了关注模型效果和成本…...