压力测试-商场项目

news2024/9/25 17:15:27

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开头的请求的处理方式

 

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

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

相关文章

陪诊小程序软件|陪诊系统定制|医院陪诊小程序

开发一个陪诊小程序需要投入一定的费用,具体金额会因项目的复杂程度、功能需求和推广政策而有所差异在投入资金之前,建议进行市场调研和需求分析,制定出合理的预算,并选择专业的开发团队进行合作,那么开发陪诊小程序需…

KingFunsion工程开发规范——关系库使用规范

KingFunsion工程开发规范——关系库使用规范 2023-07-07 20:10雷工笔记 哈喽,大家好,我是雷工。 今天学习KingFunsion工程开发规范之关系库使用规范。 第一章 统一规范 1.1.表字符集默认使用utf8; 1.2.禁止在数据库中存储大文件&#xff0…

新的CoolSiC™槽沟MOSFET技术,用于低栅氧化物应力和高性能

标题:The new CoolSiC™ Trench MOSFET Technology for Low Gate Oxide Stress and High Performance UPS(Uninterruptible Power Supply)系统也称不间断电源系统,是一种能够提供电力备用的设备,当主电源出现故障或停…

无涯教程-jQuery - jQuery.post( url, data, callback, type)方法函数

jQuery.post(url,[data],[callback],[type])方法使用POST HTTP请求从服务器加载页面。 该方法返回XMLHttpRequest对象。 jQuery.post( url, [data], [callback], [type] ) - 语法 $.post( url, [data], [callback], [type] ) 这是此方法使…

3秒钟教你如何配置vscode中的vue3代码快速生成模版

1.首先点击你的vscode左下角的齿轮设置按钮,然后点击配置用户代码片段。 2.输入vue搜索vue.json这个文件,然后点击这个文件 3.接下来只需在原有的注释之下输入粘贴如下代码即可 代码如下: "vue3": {"prefix": "vue3…

前后端分离开发,使用Nginx部署Vue

nginx相关的命令(要在nginx报下打开cmd执行相应的命令) 开启nginx:start nginx 关闭nginx:nginx.exe -s quit 怎么把现有的前端环境部署在nginx上 安装并配置好Nginx后,您可以通过以下步骤来访问项目的前端页面&#…

软件安全测试:软件产品高质量的守门员

软件安全测试是保障软件产品高质量的重要环节,它扮演着守门员的角色,为软件产品提供安全性与稳定性的保护。在互联网与信息化时代,软件产品的需求日益增长,同时也伴随着对软件安全的重视。 1、软件安全测试的定义与重要性 软件安…

智能网关实现混凝土搅拌机无人自动化

“以前的搅拌站生产时,是需要人工巡检的,运送物料和搅拌时产生的大量粉尘污染和噪音,让工人苦不堪言。但是如果有了物联网搅拌站监测系统智慧园区项目落地后,工人也不用去现场忍受噪音和粉尘了。” 行业痛点 传统模式下的混泥土…

【代码随想录day21】二叉搜索树中的插入操作

题目 给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。 注意,可能存在多种有效的插入…

二叉树(C++,代码)

例子&#xff1a;前序输入 AB##CDF#G#E#### (#表示空&#xff0c;不存在&#xff09; #include<iostream> using namespace std; typedef struct BiNode {char data;struct BiNode* lchild, * rchild; }BiNode,*Bitree; char ch; int m, n; t…

(小白必看)详解yolov5训练自己的数据集 使用香烟数据集训练yolov5识别香烟

数据集资源 https://download.csdn.net/download/qq_42864343/88110620?spm1001.2014.3001.5503 https://download.csdn.net/download/qq_42864343/88110686?spm1001.2014.3001.5501 创建数据集目录 在YOLOv5根目录下创建mydata文件夹&#xff08;名字可以自定义&#xf…

如何少走弯路?蚓链助力零售企业实现数字化转型

基于大环境下的数据驱动&#xff0c;创新业务模式成为了后疫情时代下零售企业冲破困局、拓展业务的必然趋势&#xff0c;新零售概念应运而生。新零售结合数字化应用技术为传统零售企业打造线上营销生态链&#xff0c;帮助企业积累数据&#xff0c;盘活数据实现更大营收价值。 …

CTFshow web入门 爆破

web21 bp 攻击模块的迭代器 输入账号密码 抓包 发现下面存在一个base64编码 我输入的是 123 123 发现就是base加密 账号 密码 那我们怎么通过intruder模块 自动变为 base64呢 然后去payload------>custom iterator(自定义迭代器) 位置1导入admin 因为是 账号:密码 这…

三维虚拟电子沙盘数字沙盘态势推演教程第12课

三维虚拟电子沙盘数字沙盘态势推演教程第12课 设置system.ini 如下内容 Server122.112.229.220 userGisTest Passwordchinamtouch.com 该数据库中只提供 成都市火车南站附近的数据请注意&#xff0c;104.0648,30.61658 SDK中自带了一套 导航系统&#xff0c;用的是比较详细的…

一种分解多种信号模式非线性线性调频的方法研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

值得关注的五个先进代码补全服务

效率、代码质量和生产力在编程中都是至关重要的组成部分。因此&#xff0c;开发人员不断寻求能够加快编程过程的工具&#xff0c;以提高其工作效率和质量。 在编程这个不断发展的领域&#xff0c;目前最具革命性的进展之一就是AI驱动的代码补全服务。这些工具不仅简化了编程过程…

小程序获取手机号要开始收费了!

收费说明 自2023年8月26日起&#xff0c;手机号实时验证组件将需要付费使用。 手机号快速验证组件 手机号快速验证组件 | 微信开放文档 新版本组件不再需要提前调用wx.login进行登录。 代码示例 <button open-type"getPhoneNumber" bindgetphonenumber"ge…

机器学习02-再识K邻近算法(自定义数据集训练及测试)

定义&#xff1a; 如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别&#xff0c;则该样本也属于这个类别。简单的说就是根据你的“邻居”来推断出你的类别。 用个成语就是物以类聚 思想&#xff1a; 如果一个样本在特征空间中的K个最…

【Linux命令200例】用file检查文件类型

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;本文已收录于专栏&#xff1a;Linux命令大全。 &#x1f3c6;本专栏我们会通过具体的系统的命令讲解加上鲜活的实操案例对各个命令进行深入…

vue生命周期的传统写法和setup语法糖写法

&#x1f642;博主&#xff1a;小猫娃来啦 &#x1f642;文章核心&#xff1a;vue生命周期的传统写法和setup语法糖写法 文章目录 setup语法糖设计目的vue3钩子函数beforeCreated和created被封装传统写法和语法糖写法的对比 setup语法糖设计目的 <script setup> 语法糖的…