架构师训练营 - 第 7 周命题作业
1.性能压力测试的时候,随着并发压力的增大,系统响应时间和吞吐量如何变化,为什么
在并发数量增加的过程中,一开始 TPS 是随着并发数增加而增加的,但是响应时间会处在较低的状态,也就是第1条虚线的位置。
接着响应时间开始有些增加,达到最大TPS,第2条虚线的位置。
这是继续增加并发数量,响应时间会接着增加,但是 TPS 会下降(这里不是必然的,有些系统会保持稳定的TPS)
最后,响应时间过长,达到了超时的状态。
这是老师的ppt里提供的两个图。性能测试学习过程中,常见的图也包括下面这个
https://time.geekbang.org/column/article/178076
在这个图中,定义了三条曲线、三个区域、两个点以及三个状态描述。
三条曲线:吞吐量的曲线(紫色)、使用率 / 用户数曲线(绿色)、响应时间曲线(深蓝色)。
三个区域:轻负载区(Light Load)、重负载区(Heavy Load)、塌陷区(Buckle Zone)。
两个点:最优并发用户数(The Optimum Number of Concurrent Users)、最大并发用户数(The Maximum Number of Concurrent Users)。
三个状态描述:资源饱和(Resource Saturated)、吞吐下降(Throughput Falling)、用户受影响(End Users Effected)。
从图中可以看到,随着负载的增大,随着并发用户的增长,系统响应时间,吞吐率的变化。
当然,上图有一些不精确的地方,简化出另一个图形,以说明更直接一点的关系。如下所示:
在 TPS 增加的过程中,响应时间一开始会处在较低的状态,也就是在 A 点之前。接着响应时间开始有些增加,直到业务可以承受的时间点 B,这时 TPS 仍然有增长的空间。再接着增加压力,达到 C 点时,达到最大 TPS。我们再接着增加压力,响应时间接着增加,但 TPS 会有下降(请注意,这里并不是必然的,有些系统在队列上处理得很好,会保持稳定的 TPS,然后多出来的请求都被友好拒绝)。最后,响应时间过长,达到了超时的程度
用你熟悉的编程语言写一个 web 性能压测工具,输入参数:URL,请求总次数,并发数。输出参数:平均响应时间,95% 响应时间。用这个测试工具以 10 并发、100 次请求压测 www.baidu.com。
版权声明: 本文为 InfoQ 作者【红了哟】的原创文章。
原文链接:【http://xie.infoq.cn/article/495c8f02d68740f5ad7468fbd】。文章转载请联系作者。
评论