高并发压力测试工具计算(高并发压力测试工具计算公式)

来源网友投稿 1061 2022-12-21

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。
本篇文章给大家谈谈高并发压力测试工具计算,以及高并发压力测试工具计算公式对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享高并发压力测试工具计算的知识,其中也会对高并发压力测试工具计算公式进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

性能测试-概念篇(三)

通过分析业务逻辑和技术架构,创建性能模型,制定性能方案,准备应用环境,设计并实施性能部署监控,实现符合真实业务逻辑的压力,通过监控手段获取各组件的性能计数器,分析计数器采集出的数据,查找出性能瓶颈的根本原因并优化,最后通过环比生产环境的性能数据修正场景。

2.2.1、时间指标
2.2.2、容量指标
2.2.3、资源利用率指标

2.3.1、业务模型
2.3.2、监控模型

2.4.1、测试环境
2.4.2、测试数据
2.4.3、测试模型 - 基于业务模型构造测试数据
2.4.4、性能指标
2.4.5、压力测试-阶梯压力测试高并发压力测试
2.4.6、准入准出
2.4.7、进度风险

2.5.1、软硬件环境(包括压力机)
2.5.2、应用版本
2.5.3、基础设施
2.5.4、网络结构
2.5.5、基础数据
2.5.6、压力工具

2.6.1、系统监控
2.6.2、中间件监控
2.6.3、缓存监控
2.6.4、队列监控
2.6.5、负载均衡监控
2.6.6、熔断限流
2.6.7、链路监控

2.7.1、基准场景
2.7.2、容量场景
2.7.3、稳定性场景
2.7.4、异常场景

2.8.1、场景结果整理
2.8.2、监控结果整理
2.8.3、性能整体分析
2.8.4、性能结论
2.8.5、优化建议
2.8.6、运维建议

性能验证:验证系统是否达到指定的指标。 举例:RT是300ms,QPS/TPS是否可以达到800。
性能调优:验证是否达到系统的最大容量。 举例:限制或者不限制RT、内存水位、CPU水位,QPS/TPS可以达到多少。
容量验证:需要多少台机器。 举例:50 w UV,需要配置多少台机器。

1000万的用户,在场景A中,业务1占比10%,业务2占比20%,业务3占比30%;
1000万的用户,在场景B中,业务1占比20%,业务2占比30%,业务3占比40%;
1000万的用户,在场景C中,业务1占比30%,业务2占比40%,业务3占比50%。

包括接口响应时间+业务响应时间
参考:
互联网企业:500ms以下,例如淘宝业务10ms左右。
金融企业:1s以下为佳,部分复杂业务3s以下。
保险企业:3s以下为佳。
制造业:5s以下为佳。

包括接口容量+业务容量

如果是接口层性能测试,TPS中的T 可以直接定义为接口级;
如果业务级性能测试,TPS中的T 可以直接定义为每个业务步骤和完整的业务流;

举例:

start事务(接口1)
商品详情页接口A
end事务(接口1)
start事务(接口2)
商品详情页接口B
end事务(接口2)

start事务(业务A)
加入购物车(接口1)-下单(接口2)-支付(接口3)
end事务(业务A)

start事务(业务A)
点击-加入购物车(接口1)-下单(接口2)-支付(接口3)
end事务(业务A)

a、操作系统:CPU、Memory、Network、IO、System、Swap
b、JVM:GC、classes
...

对于长连接来说,最大并发用户数即系统的并发接入能力。实际上,就算是长连接,如果实际业务已经丢掉了异常的请求,那么最大并发用户数不等于系统的并发接入能力。
对于短连接来说,最大并发用户数并不等于系统的并发接入能力。

并发是在单位时间内完成的事务(T)的个数。

在线用户数和压力线程之间的关系:

从以上的计算逻辑中,我们可以看到,这其中有几个关键数据:

举例:
1) 在线用户数:1个用户,100个请求,响应时间是250s

用户数:1个
响应时间:250s
请求数:100
tps计算: 1*100/250=0.4(请求数/秒)

在线用户数(有停顿时间):100000个用户,100个请求,响应时间是3600s
用户数:100000个
响应时间:3600s
请求数:100
tps计算:100000100/3600=2777.8 tps

2) 并发用户数(无停顿时间):1个用户,100个请求,响应时间是6s

用户数:1个
响应时间:6s
请求数:100
tps计算:1*100/6=16.67 tps

3) 压力线程=(在线用户数×单用户请求数)/峰值采样时间段÷一个压力线程的请求级TPS
压力线程 = 2777.8(100000在线用户的请求级TPS)/16.67(1个压力线程的请求级TPS)=167

4) 并发用户数=在线用户数×有停顿时间的单线程TPS÷无停顿时间的单线程TPS
并发用户数 = 100000(在线用户数)*0.4(有停顿时间的单线程TPS)/16.67(无停顿时间的单线程TPS)=2399

5) 并发度=在线用户÷并发用户×100%(取值要在同一时间段)
并发度 = 100000/2399*100%=41.68%

参考:高楼老师的课程

如何测试网站最大并发数

这篇文章解决了很多用户的难题高并发压力测试工具计算,就是如何通过最大用户并发数来确定系统最大用户数,因为这个问题不解决的话,用户很难挑选到最为适合自身系统的服务器,高并发压力测试工具计算我们来看看这篇文章。以下是作者原文。
本篇主要是性能方面的。
一个系统的最大并发用户数为1100,怎么能推算出该系统的支持最大用户数。
其中用户性能要求如下高并发压力测试工具计算:支持100万注册用户
性能需求分析:
1、根据用户的要求,本系统要支持100万用户,其中性能机器配置如何高并发压力测试工具计算?高峰值是多少?带宽?等
2、如果都是采用公司的测试环境,那么本次性能应该做哪几种性能?性能评测、负载测试、强度测试?
3、怎么算出并发用户数?响应时间?
性能指标确定:
因为用户的性能需求太广,没有定到具体的数值。那么我怎么开展后继的工作?1、确定采用公司测试环境,不用考虑环境问题。也就是说,客户端、服务端以及带宽等一系统都可以不用考虑,这是固定。
2、考虑此项目组以前开发过的系统性能情况,能否做为一个参考值。解决方案:找出本项目组以并发过二个项目,其性能个项指标进行求权。其中浏览功能:并发数为1100,平均响应时间363秒;每用户平均响应时间为0.33秒。每秒中并发3个用户。其中一系统用户已达500万,另一系统用户为320万。并且二系统一直运行正常,但目前的二系统的服务器各为3台。可以得出一台服务器为载166万,甚至更多。(因为服务器中有求权的关系)
3、100万用户,那么怎么计算出他的每小时峰值活动用户数?
解决方案:采用80•20原则计算得到每小时峰值活动用户数 6.667万/小时;那么每秒中的同一功能点点击并发数应该是18.5。
4、怎么得其并发数?
解决方案:本系统有多少个功能点?功能点为153个;也就是本系统在高峰值时一功能将被点击1258次,每秒点击0.35次。(不考虑间隔时间)考虑以前本项目组的数值。初步设置并发数为1100,主要以浏览功能为主、其次是查询和新增。
5、应该测试那种性能类型经再三考虑,三种性能都进行测试。
执行性能:
评测,依据性能指标确定中的第三点,将用户的并发设置为300-350,看其情况。负载测试,以1100为起点强度测试,为15小时和24小时为准
性能测试结果:
发现本系统最大用户支持为1100.失败用户最高为209,响应时间为315。可以判断此系统最大并发数为1100左右。也就说此系统在一台服务器上可支持150万用户数。
根据上述情况,可以得出:
1100用户并发时,用户一共响应时间为315秒(即每用户平均响应时间0.005秒),其中最高产生209个失败用户,但成功用户基本上可以完成后续操作,符合现系统要求的最大稳定用户数。由此可得出本系统在新增功能点中支持最大用户并发数为1100。按照1*100比例,计算得到每小时峰值活动用户数11万/小时;采用80•20原则计算得出本系统支持注册用户数约为165万。而本系统性能需求大规模支持100万注册用户,由上述的数据我们的系统已达到本系统性能需求。
注:100万,采用80•20原则计算得到每小时峰值活动用户数6.667万/小时。

测试开发技术(二)——压力测试

上一篇文章里说过,目前互联网公司的测试开发岗位分两类。多数的一类是既要负责业务测试、自动化测试,同时也要去开发测试框架、效率工具来辅助业务测试。这类测试开发的岗位(主要指后端的岗位)一般多少都要接触压力测试。

        压力测试、性能测试、负载测试、稳定性测试在网络上有很多文章介绍概念和区别,通常在项目过程中不会区分那么多,实际项目中都是以目标为导向,通常实际项目中都会说,压测一下看下性能,所以这里就不管详细的概念和区别了。为了好理解,我们这里统一叫压测,并以得到性能数据为性能测试,以观察稳定性为稳定性测试。

        性能测试和稳定性测试的相同之处在于都是使用压测工具来进行。但目标不同,性能测试是通过压力测试得到系统的极限性能或者和上一版本的性能对比数据。而稳定性测试则是通过压力测试提供稳定或者变化的持续流量,来观察系统持续运行的情况下是否存在异常。

        正常情况下,一般系统先做性能测试,拿到极限性能或者性能对比数据(对于非1.0项目,性能数据一般需要和上一个版本对比)之后,再通过安全的流量持续压测更长时间,来完成稳定性的验证。

        下面我们就具体介绍一下怎么做性能测试和稳定性测试。

        性能测试的第一步要确定目标,就是为什么要做性能测试,要达到什么样的目标或者效果。比如某个首次上线的系统,性能测试主要是为了得到系统的极限性能数据;再比如,系统优化,更换了RPC协议或者消息队列,性能测试就是为了量化此次系统优化在性能上优化的效果。另外,也不是所有的项目都需要性能测试,比如一个内部系统,用户数和流量本身就很少,而且在未来一段时间也不会有增量,这就基本不需要性能测试。

        如果是从无到有的1.0项目,因为项目还没有上线,所以只能评经验来预估线上的流量数据;但如果是非1.0项目,就可以收集当前的线上数据。具体收集的数据如下(仅供参考,要按照实际情况来调整):1)被测系统或模块各类请求流量比例;2)系统或模块目前平均、峰值、最小 qps;3)线上部署方式和规模;4)被测系统或模块依赖能承受的QPS或者容量。

        确定目标和收集完线上现有数据之后,需要根据目标和现有数据确定压测方案,比如,每个阶段通过多大并发或者流量来压测、分几个阶段、每个阶段多长时间、以及压测过程中需要观察和记录哪些数据等。

        同时,也要准备压测环境,压测的环境要尽可能的和线上一致,如果达不到,就做等比缩放。比如,一个系统有A、B两个模块组成,线上A部署了20台机器,B部署了5台机器,那么压测就可以A部署4台,B部署1台。机器和实例的数量只是一个方面,同时也要考虑机器的性能(CPU盒数、内存、磁盘、网卡等),还要考虑依赖方(如DB、缓存、消息队列等)的部署。部署压测环境的核心思路就是要用这套环境反应出线上环境的真实情况。

        要进行压力测试就一定要有压测工具,一般来说压测http或者其他开源协议可以在网上找到现成的工具,比如jmater之类的。但如果场景比较特殊,或者使用的是公司或项目的私有协议,就只能使用公司内部的工具或者自己动手开发了。

        选择好压测工具就要构造压测数据了。构造压测数据主要分两点:

        第一点是要构造压测环境系统中的数据。因为线上系统内部一定是有一定数据的,我们要尽量模拟线上就要在系统中添加相应的数据。

        另一点就是要准备压测的请求数据。这点跟选择的压测工具有关,一般来说分2种:

        1)数据词典, 压测的请求提前准备好,存入文件、DB或缓存里,数据量较大的时候一般需要写程序生成。

        2)实时生成,这种是压测工具在压测的时候根据配置规则来实时随机生成请求。

        准备工作一切就绪,下一步就开始做压测的执行。这时候主要就是根据压测方案的从低到高去调整压测工具的并发数或请求数,来对目标系统或模块进行压测。

        压测时,要观察CPU、内存、网络IO、磁盘空间、被压目标日志、依赖系统或者模块的状态等数,也要记录不同并发下目标系统或者模块处理请求的QPS和响应时间。同时也要注意有没有内存泄漏、句柄泄漏、系统崩溃等问题。

        实际上部分数据在记录的过程中就可以初步整理出来。这里要针对上一步记录的数据,进行汇总,主要要产出在不同并发下,上面提到的数据都是什么情况。需要根据数据判断出极限性能,找到这种部署情况下瓶颈在哪,以及是什么原因造成的,为后续扩容提供依据。有些情况还需要跟以前的数据做对比,看性能提升或者下降的程度是不是符合预期。最后,把这些信息综合汇总、分析之后,产出性能测试的报告。

        通常性能测试之后拿到了性能数据之后,都会在安全的并发或者流量下持续压测更长的时间来确保服务的稳定性。比如,笔者通常测试性能的时候,每轮可能压测半小时到一小时(在刚开始并发或者流量较小的时候可能会更短),在得到期限性能之后,会控制极限性能时80%-%90的流量或者并发去压测更长的时间,这个时间一般会比较长,而且多数情况下会在晚上下班前启动,然后第二天到公司来看结果。

        除了长时间通过安全流量来验证外,有些时候在特殊场景下,也需要验证在安全流量范围内,流量急曾或者急降的情况下,稳定性是否有影响。或者,验证在一定流量下,模拟某个依赖或者系统内部的模块出现问题,执行相应预案时,对系统整体的影响是否符合预期。

        当然,稳定性很多情况是异常,但更多的异常会在异常测试里去做,这里的稳定性测试是指在一定流量压力下的稳定性测试,其他的就不做讨论了。

        上面介绍了压力测试里,性能测试和稳定性测试要做什么,那具体怎么做呢?下面我们就通过一个实例来简单介绍一下。

      一个消息推送的系统,推送的消息就是我们日常手机APP的通知消息。这个消息通知的系统有三个接口,分别是单播(指定推送给某个人)、组播(推送给一个组,组里可能有多个人)、广播(推送给APP所有用户)。现在这个系统做了一个重构,更新了内部交互的RPC协议,所以要压一下,跟之前的性能数据做个对比。另外,系统重构前,线上集群极限性能为30000 QPS。

        下面,我们就按照前面的步骤,来简单介绍一下具体怎么做。

      目标就是要得到重构后的系统性能数据,并和原有的做对比,原有的极限性能已知,大概在30000 QPS左右。

        收集线上数据,比如说我们收集到单播、组播、广播的请求比例为5:78:1;组内人数大概在300-1000;发送的消息字符数在30-100这个区间。

        压测方案要先确定部署方案,比如这个系统向上是20台机器(或者实例),压测采用2台机器(等比缩放)。压测机器是线上的1/10,所以我们的目标性能就是3000qps。那么我们压测的方案就可以如下设置:

        第一轮,2个并发,5-10分钟,主要目的是为了先验证环境和压测工具没有问题;

        第二轮,根据上一轮并发数和机器资源(CPU、内存、IO)的情况,调整并发到极限的一半多一些(比如,之前是2个并发,CPU占用10%左右,内存、IO占用都很小,那么就以CPU的占用作为参考来计算,1个并发大概占用5%,那我们就可以吧并发调到10-12,目标CPU占用是50-60%)。这其实才真正开始压测,如果没问题,就开始逐步加压;

        第三轮,开始逐步增加,按照实际情况一次增加2-5个并发,直到性能达到瓶颈。

        这里是假设压测工具通过调整并发数来操作压力,主要需要看下并发对系统CPU、内存、IO的影响,根据压测时机器的资源占用信息来判断增加多少并发。

        确定好方案,就需要部署压测环境了,这里要注意,尽量使用跟线上一致配置的机器。

        压测工具要根据实际业务做选择,必要的时候需要自己开发,工具开发后面如果有机会在其他的文章里介绍,这里就不多介绍了。我们这个例子因为是系统更换内部协议,对外接口不变,所以可以使用原有压测工具。

        下面就是要构造数据:

        首先,要构造系统内部的数据,比如用户信息、设备信息、组信息,这里既要根据线上的收集到的信息来构造,比如用户数、组的数量、组内用户数等。这类如果方便的话可以直接在DB里插入,或者掉相应的系统API来准备。

        然后就是压测的请求数据,比如说压测工具是用数据词典来压测,那么这里我们就通过脚本,来生成压测请求数据。这里要注意线上收集到的各个接口的占比,即5:78:1。压测的时候按照这个比例来提供流量。

        准备工作完成,开始做压测。

        这时候要先吧各类数据观察准备好,一般现在的互联网大厂都有图形化的工具来看,如果没有也可以通过linux的一些命令来看。常用的命令有top\ps\vmstat, 这里推荐使用top来查看实时的资源情况,使用vmstat的来定时输出当资源情况(vmstat -t 1 就是每秒输出一次)。

        准备好了观测,那就启动压测工具,按照方案压测。压测方案上面已经介绍,这里就不重复了。

        假如我们并发加到20个的时候,CPU占用达到85%左右,处理请求达到3600qps,其他资源占用都不足机器的一半;并发加到22个的时候,CPU占用达到95-100,处理请求是3700qps;并发加到24,CPU打满,处理请求3800QPS,并且出现错误日志。这时候就可以停止压测了。

      数据整理,我们首先要整理一个表格或者图标,我们这里用表格:

       这个表格就是压测产出的最核心的数据,由于CPU是明显的性能瓶颈,表格里就不体现其他资源了,如果其他资源使用率也比较高,也要放到这个表格里,又或者瓶颈在外部依赖,也要体现出来。通过这个数据可以看出,3700QPS就是系统处理的极限,安全的流量在3600QPS。这时候就可以用17-20的并发数,长时间压测压测一下,看看系统整体的稳定性。

      那么性能报告怎么写呢?下面就给出一个比较简单的性能报告样例。

        标题:消息推送RPC协议升级性能测试报告

        一、项目背景

                这里写项目背景和目标

        二、压测环境

                线上20台物理机,压测环境使用2台物理机,配置与线上一致,具体如下:

                XX核,XXG内存,万兆网卡,硬盘 400G * 6 SSD

                DB:XX主XX从XX备

        三、压测方案和数据

1. 请求比例

      单播:组播:广播 =  5:78:1

2. 压测过程数据

      3.  资源占用图

    可以把QPS和CPU占用使用工具(比如excel)生成一个折线图,另外,可以把其他资源数占用的数据图片贴一下。

        四、结论

        压测过程中,压力达到3700qp时,内存与IO正常,CPU占用达到98%,无错误日志。压力达到3800qps时CPU打满,且5分钟后开始出现错误日志。因此系统在2台物理机部署极限性能为3700qps,性能瓶颈在CPU,预计线上20台机器极限性能为37000qps.

        系统RPC协议升级前20台机器30000qps,升级后预计能达到37000qps,性能整体提升23%,符合预期。

        上面就是一个比较简单的报告,真实项目中瓶颈不一定是CPU,可能是其他资源,也可能是依赖的系统或者模块,这些都需要观察和分析压测中的数据来得出。

        压力测试是后端测试和测试开发人员的必备技能,这篇文章只是根据笔者的经验针对压力测试进行的总结,不能覆盖所有压测场景,仅给大家做个参考。更多的是需要我们根据系统的实际情况去探索和实践。

ab(Apache Bench)压力测试工具

ab(Apache Bench)是啥高并发压力测试工具计算

ab是Apache自带的一个压力测试软件,可以通过ab命令和选项对某个URL进行压力测试。ab建议在linux环境下使用。

为啥要压力测试工具?

因为你不给你的网站压力,你不知道项目的最大的容量是多少,自己的知识有多少。 在一定范围里,压力达到一定程度,动力和容量也就达到顶峰 。所以说没有最大的容量,只有极致的性能优化。

压力测试工具,另一方面也为测试提供一个标准,为当前需要优化提供基础数据。

ab有什么能力?

ab作为Apache自带的软件,虽然性能不是最强,但是作为一般的压力测试已经足够高并发压力测试工具计算了。

ab的安装

一般已经安装了Apache就不需要安装,需要安装的话可以自行搜索。

ab的主要命令

ab主要使用的两个选项就是-n和-c。其他选项使用命令 **ab -h **进行查看。

命令格式是: ab -n10 -c10 URL

命令解说:

自带的命令选项说明如下

上图所示,-n指的是请求URL的数量,-c是指每次请求的并发数。展示的命令格式的意义就是:对URL进行10次请求,每次并发数是10个,总共请求了100次。

注:URL最后一定要补充一个"/",如: http://www.baidu.com/

测试性能主要关心那几个点?

对于ab工具,我们需要关注的是服务器软件,每秒请求数(Requests per second),单个请求的耗时(Time per request)。

下面是测试的结果解析:

测试的几个原则

1、测试工具和测试数据时,使用到别人的网址时,-n和-c的参数不能太大。

2、测试当前的机器,最好用另一台机器测试。

3、测试修改结果,最好是某个功能完善后才测,否则会导致结果有差异。

如何用mysqlslap进行压力测试

压力测试工具mysqlslap 使用帮助--help介绍的很详细高并发压力测试工具计算,下面是一些常用的选项。根据帮助文档就可以自己敲命令进行压力测试了。

--concurrency代表并发数量高并发压力测试工具计算,多个可以用逗号隔开,当然你也可以用自己的分隔符隔开,这个时候要用到--delimiter开关。

--engines代表要测试的引擎,可以有多个,用分隔符隔开。

--iterations代表要运行这些测试多少次。

--auto-generate-sql 代表用系统自己生成的SQL脚本来测试。

--auto-generate-sql-load-type 代表要测试的是读还是写还是两者混合的(read,write,update,mixed)

--number-of-queries 代表总共要运行多少次查询。每个客户运行的查询数量可以用查询总数/并发数来计算。比如倒数第二个结果2=200/100。

--debug-info 代表要额外输出CPU以及内存的相关信息。

--number-int-cols 代表示例表中的INTEGER类型的属性有几个。

--number-char-cols 意思同上。

--create-schema 代表自己定义的模式(在MySQL中也就是库)。

--query 代表自己的SQL脚本。

--only-print 如果只想打印看看SQL语句是什么,可以用这个选项。

mysqlslap对于模拟多个用户同时对MySQL发起“进攻”提供了方便。同时详细的提供了“高负荷攻击MySQL”的详细数据报告。而且如果你想对于多个引擎的性能。这个工具再好不过了。

关于高并发压力测试工具计算和高并发压力测试工具计算公式的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 高并发压力测试工具计算的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于高并发压力测试工具计算公式、高并发压力测试工具计算的信息别忘了在本站进行查找喔。
上一篇:减速机负载测试(减速机负载测试视频)
下一篇:zabbix告警频率(zabbix 告警)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~