架构师训练营 week07 作业
性能压测的时候,随着并发压力的增加,系统响应时间和吞吐量如何变化,为什么?
一.名词解释
吞吐量是只系统内单位时间内能接受的请求量
响应时长 是系统处理单个请求需要的时长
二.名词分析
影响吞吐量的因素有哪些?
吞吐量首先和系统的资源限制有关,并且由系统种短板资源决定。从网络资源到请求处理的线程资源,到 db 链接资源 都影响着一个系统的吞吐量(当然可以通过请求队列来扩充单个资源的影响,下层资源只要保证在超时时间结束之前返回就可以)
影响响应时长的因素有哪些?
最长的同步调用链条
三.两者关系
吞吐量和响应时长在优化层面上是互斥的,响应最长的时长 = 单个调用的允许的超时时间总和
响应时间越长,对于某一层调用来说就是允许的超时时间越长,对于一定处理速度和资源数量的 请求处理系统来说,就是所能容忍的请求等待队列就越大,那么所支持的吞吐量就越大。
队列长度/(处理单个请求需要的时间 * 资源数量) = 超时时长
四.反模式
响应时长超过超时时长反模式
上层层调用下层服务超时时可以选择重试机制,反复超时反复重试就会导致下层应用需要处理的请求量不断的递增,最后雪崩。
最常见的场景就是用户刷新一个页面,超过容忍时间后还没有显示出来,用户就会选择刷新
盗别人的图来说明哈
一,下面这图,其实是反映了,吞吐量,响应时间,用户数的关系:
第一条红线是最佳用户数,
第二条红线是最大用户数。
随着用户数的增加, 吞吐量在某时刻开始下降。 系统的负载已经达到最大利用率。
很多时候我们都需要画次图来分析结果。
版权声明: 本文为 InfoQ 作者【GunShotPanda】的原创文章。
原文链接:【http://xie.infoq.cn/article/b459fe71eef4aa9192c12a7a4】。未经作者许可,禁止转载。
评论