写点什么

架构师训练营 第七周 作业

用户头像
一雄
关注
发布于: 2020 年 07 月 21 日

性能压测的时候,随着并发压力的增加,系统响应时间和吞吐量如何变化,为什么?



先阐述一下如下概念

  1. 并发压力

  2. 指系统能够同时处理请求的数目。对于网站而言,并发数即网站并发用户数,指同时提交请求的用户数目。

  3. 系统响应时间

  4. 指应用执行一个操作所需的时间,包括从发出请求开始到最后收到响应所需要的时间。

  5. 吞吐量

  6. 指单位时间内系统处理的请求数,体现系统的整体处理能力。对于网站,可以用 “请求数/秒” 来衡量。TPS(每秒事务数)是吞吐量的一个常用量化指标,此外还有HPS(每秒HTTP请求数)、QPS(每秒查询数)等。

  7. 三者关系

  8. 吞吐量(QPS/TPS)=并发数/平均响应时间

  9. 简而言之就是一个系统吞吐量通常有QPS(TPS),并发数两个因素决定,每套系统这个两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换,内存等等其他消耗导致系统处理性能下降,响应时间增加。



开始回答问题

在系统资源承受范围之内,吞吐量随系统的并发用户数的增加呈现增加趋势,也就是说你客户端来多少请求数系统吃(处理)多少请求数,对应的响应时间没有多大的变化波动;当超出系统资源承受范围时有两种情况:

  1. 一种是系统只能处理这么多,吞吐量趋近于一个定值,多余的请求拒绝掉(类似令牌桶或者限流算法处理),此时的响应时间也可以看成是一个定值,无多大波动。

  2. 还有一种情况是来者不拒,来啥接啥,最后导致系统吞吐量下降甚至系统崩溃,因为系统会为对应的请求都开辟单独的线程处理,当cpu资源大量用于处理线程上下文切换的时候,对应的线程业务处理都是wait状态,responseTime增加。



发布于: 2020 年 07 月 21 日阅读数: 45
用户头像

一雄

关注

还未添加个人签名 2020.03.05 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 第七周 作业