系统吞吐量、QPS、并发数、响应时间,以及提高吞吐量的思路

一.系统吞度量要素:

吞吐量是指系统在单位时间内处理请求的数量

系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间

        QPS(TPS):每秒钟request/事务 数量

        并发数: 系统同时处理的request/事务数

        响应时间:  一般取平均响应时间

(很多人经常会把并发数和TPS理解混淆)

理解了上面三个要素的意义之后,就能推算出它们之间的关系:

QPS(TPS)= 并发数/平均响应时间  

并发数 = QPS*平均响应时间

举个例子:

银行窗口业务,窗口数量为10个窗口,平均每个人办理业务的时候为2分钟。可以用下面的方法计算。

并发数=10个窗口

平均响应时间为 = 2分钟

吞吐量 = 10/2 =5个每分钟

真实的系统吞吐量:

如果一个系统接口在 4核8G的机器上跑

给接口分配4个线程,并发执行 : 并发数= 4

平均响应时间是 100ms

QPS=4/0.1=40

提高吞吐量:

1. 并发数的优化:4个CPU

       接口处理可能包括:CPU处理 20ms、 本地IO 30ms、网络IO  50ms

       可以在本地IO和网络IO阻塞时,并发处理其他线程:每个线程任务真正占用CPU的时间是 20ms

       那么,单个CPU100ms可以并发 5个线程,4个CPU*5=20个并发数

       忽略线程切换的耗时:100ms 单个CPU可以并发5个线程,每个线程占用CPU时间片20ms,等都执行完了,各自的IO也已经返回数据,再分别耗时1ms(忽略) 去接收IO返回

2. 响应时间优化:100ms优化到50ms

     本地IO+网络IO 增加响应的二级三级缓存,并优化网络通信,可能可以提审一倍以上的性能,比如30ms

     加上CPU处理耗时的20ms= 50ms        

QPS=并发数20/响应时间50ms = 20/0.05 = 400QPS

        一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降。

1. 并发数不变:QPS不断增加,QPS超过最大吞吐量后,会有大量请求等待,平均响应时间急剧下降

2. QPS不变:增加并发数,会导致CPU并发线程过多,线上上下文切换频繁,内存消耗增加,从而使平均响应时间下降

二.如何提高系统QPS?

由前面的公式:QPS(TPS)= 并发数/平均响应时间 可以看出,要提高qps,我们必须做2个方面努力

2.1增加并发数

1.比如增加tomcat并发的线程数,开喝服务器性能匹配的线程数,可以更多满足服务请求。

2.增加数据库的连接数,预建立合适数量的TCP连接数

3.后端服务尽量无状态话,可以更好支持横向扩容,满足更大流量要求

4.调用链路上的各个系统和服务尽量不要单点,要从头到尾都是能力对等的,不能让其中某一点成为瓶颈。
5.RPC调用的尽量使用线程池,预先建立合适的连接数。

2.2减少平均响应时间

1.请求尽量越前结束,越好,这样压力就不要穿透到后面的系统上,可以在各个层上加上缓存

2.流量消峰。放行适当的流量,处理不了的请求直接返回错误或者其他提示。和水坝道理很类似

3.减少调用链

4.优化程序

5.减少网络开销,适当使用长连接

6.优化数据库,建立索引

最后,要优化的地方还有很多,上面只是列举常见一些要注意的地方

优化的指导原则就是增加并发数 和减少平均响应时间

 

下面的内容整理引用其他博客,用于参考

三.系统吞吐量评估:

我们在做系统设计的时候就需要考虑CPU运算、IO、外部系统响应因素造成的影响以及对系统性能的初步预估。

而通常境况下,我们面对需求,我们评估出来的出来QPS、并发数之外,还有另外一个维度:日PV。

通过观察系统的访问日志发现,在用户量很大的情况下,各个时间周期内的同一时间段的访问流量几乎一样。比如工作日的每天早上。只要能拿到日流量图和QPS我们就可以推算日流量。

通常的技术方法:

        1. 找出系统的最高TPS和日PV,这两个要素有相对比较稳定的关系(除了放假、季节性因素影响之外)

        2. 通过压力测试或者经验预估,得出最高TPS,然后跟进1的关系,计算出系统最高的日吞吐量。B2B中文和淘宝面对的客户群不一样,这两个客户群的网络行为不应用,他们之间的TPS和PV关系比例也不一样。

A)淘宝

淘宝流量图:

系统吞吐量评估方法

淘宝的TPS和PV之间的关系通常为  最高TPS:PV大约为 1 : 11*3600 (相当于按最高TPS访问11个小时,这个是商品详情的场景,不同的应用场景会有一些不同)

B) B2B中文站

B2B的TPS和PV之间的关系不同的系统不同的应用场景比例变化比较大,粗略估计在1 : 8个小时左右的关系(09年对offerdetail的流量分析数据)。旺铺和offerdetail这两个比例相差很大,可能是因为爬虫暂的比例较高的原因导致。

在淘宝环境下,假设我们压力测试出的TPS为100,那么这个系统的日吞吐量=100*11*3600=396万

这个是在简单(单一url)的情况下,有些页面,一个页面有多个request,系统的实际吞吐量还要小。

无论有无思考时间(T_think),测试所得的TPS值和并发虚拟用户数(U_concurrent)、Loadrunner读取的交易响应时间(T_response)之间有以下关系(稳定运行情况下):
TPS=U_concurrent / (T_response+T_think)。

并发数、QPS、平均响应时间三者之间关系

系统吞吐量评估方法

   上图横坐标是并发用户数。绿线是CPU使用率;紫线是吞吐量,即QPS;蓝线是时延。
    开始,系统只有一个用户,CPU工作肯定是不饱合的。一方面该服务器可能有多个cpu,但是只处理单个进程,另一方面,在处理一个进程中,有些阶段可能是IO阶段,这个时候会造成CPU等待,但是有没有其他请 求进程可以被处理)。随着并发用户数的增加,CPU利用率上升,QPS相应也增加(公式为QPS=并发用户数/平均响应时间。)

随着并发用户数的增加平均响应时间也在增加,而且平均响应时间的增加是一个指数增加曲线。而当并发数增加到很大时,每秒钟都会有很多请求需要处理,会造成进程(线程)频繁切换,反正真正用于处理请求的时间变少,每秒能够处 理的请求数反而变少,同时用户的请求等待时间也会变大,甚至超过用户的心理底线。

 

软件性能测试的基本概念和计算公式

一、软件性能的关注点

对一个软件做性能测试时需要关注那些性能呢?

我们想想在软件设计、部署、使用、维护中一共有哪些角色的参与,然后再考虑这些角色各自关注的性能点是什么,作为一个软件性能测试工程师,我们又该关注什么?

首先,开发软件的目的是为了让用户使用,我们先站在用户的角度分析一下,用户需要关注哪些性能。

对于用户来说,当点击一个按钮、链接或发出一条指令开始,到系统把结果已用户感知的形式展现出来为止,这个过程所消耗的时间是用户对这个软件性能的直观印象。也就是我们所说的响应时间,当相应时间较小时,用户体验是很好的,当然用户体验的响应时间包括个人主观因素和客观响应时间,在设计软件时,我们就需要考虑到如何更好地结合这两部分达到用户最佳的体验。如:用户在大数据量查询时,我们可以将先提取出来的数据展示给用户,在用户看的过程中继续进行数据检索,这时用户并不知道我们后台在做什么。

用户关注的是用户操作的相应时间。

其次,我们站在管理员的角度考虑需要关注的性能点。

1、 响应时间
2、 服务器资源使用情况是否合理
3、 应用服务器和数据库资源使用是否合理
4、 系统能否实现扩展
5、 系统最多支持多少用户访问、系统最大业务处理量是多少
6、 系统性能可能存在的瓶颈在哪里
7、 更换那些设备可以提高性能
8、 系统能否支持7×24小时的业务访问

再次,站在开发(设计)人员角度去考虑。

1、 架构设计是否合理
2、 数据库设计是否合理
3、 代码是否存在性能方面的问题
4、 系统中是否有不合理的内存使用方式
5、 系统中是否存在不合理的线程同步方式
6、 系统中是否存在不合理的资源竞争

参考:

如何提高系统的吞吐量(QPS/TPS)

系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式

阿征new
关注 关注
  • 3
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
什么是响应时间并发吞吐量
.
04-26 3万+
**指应用执行一个操作所需的时间,包括从发出请求开始到最后收到响应所需要的时间**。拿我们平常浏览网站点击链接为例,响应时间大致包括如下几步: 1. 用户通过鼠标或键盘发出请求操作 2. 浏览器构造请求(请求头,请求体) 3. 用户计算机向网站服务器发送HTTP请求
QPS(每秒查询率)和TPS(吞吐量)初步理解
HELLOYI的博客
10-22 4605
1.QPS(每秒查询率) 含义:每秒的响应请求,即最大吞吐能力;可衡量域名系统服务器其机器的性能。 应用:可以根据业务系统中峰值时间的QPS来决定单台机器的QPS或所需机器量。 峰值时间 2.TPS(吞吐量) 含义: ...
QPS,平均时延和并发
最新发布
he_wen_jie的博客
06-10 1036
我们当前有两个服务A和B,想要知道哪个服务的性能更好,该用什么指标来衡量呢?
QPS并发响应时间吞吐量之间的关系
m0_68201836的博客
02-15 1958
QPS并发响应时间吞吐量的概念以及他们之间的关系
QPS、TPS、并发用户吞吐量关系
wangnaisheng的专栏
05-15 2275
QPS、TPS、并发用户吞吐量关系
并发QPS,TPS,响应时间
lihongtai的专栏
03-04 951
1) 并发: 在1秒内,同时发送的http请求 2) 响应时间:从发送http请求(并发),到处理完所有的http请求(并发)所用到的时间 3) QPS (Query Per Second): = 并发 / 响应时间 4) TPS (Transaction Per Second): =并发 / 响应时间 注意TPS和QPS的区别: QPS : 是...
吞吐量(TPS)、QPS并发响应时间(RT)概念
a785064576的博客
11-27 308
1. 响应时间(RT)  响应时间是指系统对请求作出响应的时间。直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许多功能,而不同功能的处理逻辑也千差万别,因而不同功能的响应时间也不尽相同,甚至同一功能在不同输入据的情况下响应时间也不相同。所以,在讨论一个系统响应时间时,人们通常是指该系统所有功能的平均时间...
一文读懂吞吐量(TPS)、QPS并发响应时间(RT)概念
10-15
在IT行业中,性能测试是衡量系统效率和稳定性的重要环节,其中关键的概念包括吞吐量(TPS)、每秒查询率(QPS)、并发以及响应时间(RT)。这些指标是评估系统性能的基础,理解它们有助于优化系统设计和提升用户...
TPS(吞吐量)、QPS(每秒查询率)、并发、RT(响应时间)是什么意思
09-29
在IT行业中,性能测试是评估系统能力的关键环节,其中几个重要的指标包括TPS(吞吐量)、QPS(每秒查询率)、并发以及RT(响应时间)。理解这些概念有助于优化系统性能,提高用户体验。 1. 响应时间(Response Time, RT...
系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式
02-25
系统吞吐量几个重要参QPS(TPS)、并发响应时间QPS(TPS):每秒钟request/事务并发系统同时处理的request/事务响应时间:一般取平均响应时间(很多人经常会把并发和TPS理解混淆)理解了上面三...
系统吞吐量(TPS)、用户并发量、性能测试概念和公式1
08-08
这意味着在一定的并发下,响应时间越短,系统吞吐量越大。 系统响应时间受到CPU运算、I/O操作、外部系统响应等关键路径的影响。在设计系统时,需要考虑这些因素以预估系统性能。在评估系统吞吐量时,我们还会...
性能指标:QPS、TPS、系统吞吐量理解
m0_46286757的博客
07-12 1万+
QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。TPS:是TransactionsPerSecond的缩写,也就是事务/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个QPS vs TPS:
QPS、TPS、并发用户吞吐量之间有什么联系,存在什么关系?
热门推荐
李文良的博客
07-06 1万+
前言:QPS、TPS、并发用户吞吐量之间的关系你真的懂么? 1、QPS QPS Queries Per Second 是每秒查询率 ,是一台服务器每秒能够相应的查询次,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准, 即每秒的响应请求,也即是最大吞吐能力。 2、TPS TPS Transactions Per Second 也就是事务/秒。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的
系统性能指标 (并发用户响应时间、及系统吞吐量
u012002125的博客
10-12 1万+
一、并发用户 并发用户,是软件系统性能需求与性能测试最常用、最重要的指标之一。它既包含了业务层面也包含后端服务器层面的两层含义。 1.1、业务层面并发用户 业务层面的并发用户,指的是实际使用系统的用户总。但是,单靠这个指标并不能反映系统实际承载的压力,我们还要结合用户行为模型才能得到系统实际承载的压力。 1.2、后端服务器层面并发用户 后端服务器层面的并发用户,指的是“同时向服务器发送请求的量”,直接反映了系统实际承载的压力。 1.3、并发用户对于性能测试 在实际的性能测试中
系统性能指标参讲解_吞吐量QPS/TPS、并发响应时间
db_murphy的博客
08-17 5712
【引言】 在建设项目系统投入生产应用前,往往会对系统做个性能压测,一是为了验证系统的在设定的不同并发、用户和对应业务场景下的负载能力,是否符合系统最初的设定目标;二是做到心中有,知晓现阶段系统上述各场景下的压测表现,为后续系统的扩展,有一个较为真实的重要参考推断依据。 提到性能测试,不得不提几个常用的性能指标: 并发用户响应时间吞吐量(TPS, QPS), 分别看一下各自的指标含义: 1. 并发系统可以同时承载的正常使用系统功能的用户访问量,反应系统整体负载能力。 2. .
各种参响应时间
weixin_33815613的博客
10-20 572
 来自为知笔记(Wiz)
性能优化案例-提升单机QPS,CPU优化
weixin_39313241的博客
03-16 1376
系统优化案例-提升单机QPS,CPU优化背景分析GC问题:代码复杂度过高效果总结 背景 最近有个公司介入ADX广告竞价相关业务。需要我们做ADX竞价系统。该业务有一下特性: 请求量巨大 6W+QPS 媒体方要求询价接口延时极低 65ms内返回。(很多大厂都要求30ms) 对于我们公司来说业务复杂性又很高。 我们在接入媒体方ADX询价业务时,我们申请了75台机器(8c16g)。但是只能支撑起7k...
性能测试-性能调优(提高系统吞吐量QPS/TPS)一篇打通...
测试人,要卷就卷成最强的!
07-06 576
1、系统吞度量要素一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。
测试性能指标应至少包含“并发性”、“吞吐量”和“响应时间”等指标
06-10
是的,测试性能指标应至少包含“并发性”、“吞吐量”和“响应时间”等指标,以下是这些指标的具体解释: 1. 并发性:并发性指同时有多少个用户访问系统。在JMeter中,可以通过设置线程组中的并发用户来测试并发性能。 2. 吞吐量吞吐量指在单位时间内系统可以处理的请求量,通常以每秒请求QPS)来衡量。在JMeter中,可以通过查看聚合报告或响应时间图表来测试吞吐量。 3. 响应时间响应时间指从发送请求到接收到响应的时间,包括客户端发送请求、服务器处理请求、服务器发送响应和客户端接收响应等时间。在JMeter中,可以通过查看聚合报告或响应时间图表来测试响应时间。 除了以上三个指标,还可以根据具体测试场景和需求,测试其他性能指标,如并发用户增长速率、错误率等。通过测试这些性能指标,可以评估Web软件的性能,并对其进行优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • mysql float精度与范围总结 42176
  • JPA出现Transaction marked as rollback only异常 总结 32030
  • Linux下打包压缩war和解压war包 zip和jar 29168
  • mysql insert锁机制 26955
  • Runtime.getRuntime().availableProcessors() 26291

分类专栏

  • spring-boot 2篇
  • 线上问题排查
  • 算法与数据结构 1篇
  • 开发工具 19篇
  • log 2篇
  • mysql 8篇
  • java 23篇
  • linux 6篇
  • js+h5+css
  • springMVC 11篇
  • aop 3篇
  • 跟着开涛学习笔记spring3
  • shiro
  • eclipse 4篇
  • solr 5篇
  • Zookeeper 4篇
  • redis 3篇
  • 数据库-mongodb 4篇
  • 数据库-mysql 14篇
  • 工作生活管理 1篇
  • BUG 4篇
  • web-servlet 2篇
  • lua 3篇
  • jvm 3篇
  • dubbo 2篇
  • maven 2篇
  • memcache 1篇
  • elasticSearch 7篇
  • 操作系统 3篇

最新评论

  • Linux下打包压缩war和解压war包 zip和jar

    一杯冰拿铁: 写错了吧,jar 打包的时候

  • 整理:Elasticsearch 三种分页方式

    奇幻Oliver: 汇总后选择最后面10条数据是不是也不对?难道不应该选择汇总后的第100条到第110条数据吗?

  • Spring Boot DevTools使用教程

    xxxxxue: 新版的IDEA compiler.automake.allow.when.app.running 跑到了 "设置 -> 高级设置`" 中, 高级设置中搜索搜索 allow

  • 磁盘和内存读写简单原理

    m0_71775839: 太好了,666

  • 整理:Elasticsearch 三种分页方式

    weixin_48177881: 这个不是我的,我也看博客的,估计是作者写错了表情包

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • SpringBoot全局异常统一处理
  • Spring Boot DevTools使用教程
  • redis几种java客户端比较:jedis、redisson、lettuce
2021年2篇
2020年21篇
2019年3篇
2018年11篇
2017年7篇
2016年97篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码观澜网站优化按天收费东莞推广网站大运网站建设龙华SEO按效果付费南山关键词排名大浪推广网站松岗百姓网标王推广光明seo网站优化龙岗英文网站建设南山SEO按效果付费永湖网站优化推广坑梓网站搭建吉祥网站推广南山网站优化双龙网页制作龙华网站建设设计龙华网站优化按天计费坑梓品牌网站设计丹竹头seo网站优化广州关键词按天扣费西乡网站推广同乐企业网站建设福永营销网站木棉湾关键词排名包年推广龙华网站搭建南山企业网站改版坪山优秀网站设计民治网站改版沙井英文网站建设双龙品牌网站设计歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化