写点什么

[架构师训练营第 1 期] 第七周命题作业

发布于: 2020 年 11 月 08 日

题目

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

  2. 用你熟悉的编程语言写一个 Web 性能压测工具,输入参数:URL,请求总次数,并发数。输出参数:平均响应时间,95% 响应时间。用这个测试工具以 10 并发、100 次请求压测 www.baidu.com。


第一题

性能压测的时候,随着并发压力的增加,系统会先后经过一般性能测试、负载测试、压力测试三个阶段。


一般性能测试是在系统设计范围之内对系统持续施加压力。

在这个阶段中,并发压力增加,吞吐量(如每秒处理事务数 TPS)也随之增加,二者呈近似线性关系。

因为在设计范围内,系统资源足够应对该压力。


负载测试是以系统安全临界值为目标对系统持续施加压力。

在这个阶段中,并发压力增加,吞吐量依然随之近似线性增加,但是增长率相对一般性能测试较缓慢。

因为超出设计范围,系统资源开始出现竞争,但因为系统留有一定余量,所以吞吐量仍会保持一定上升。


压力测试是在超过安全负载的情况下,对系统持续施加压力,直到系统崩溃或不能再处理任何请求。

在这个阶段中,并发压力增加,吞吐量反而下降。

因为超出安全临界值,系统资源的使用已经完全饱和,没有更多资源来处理新请求,而已有资源还在竞争。

第二题

使用 JavaScripts 编程语言写一个题目所需的 Web 性能压测工具并运行测试如下:

测试工具

性能测试-测试工具

辅助函数

性能测试-辅助函数

测试代码

测试结果

性能测试-运行结果

结论

上面显示的是使用联通 4G 网络环境测试的结果,而在此之前使用移动 4G 测试的结果是平均响应时间 400 ms 左右、95% 响应时间 200 ms 左右,在此之后使用光纤网络测试结果是平均响应时间 90 ms 左右、95% 响应时间 100 ms 左右。这说明,不同网络环境对测试的结果影响很大,网络环境或许也应该作为性能优化的分层思想的其中一层来考虑,如若不然,那么应该为性能测试设定一个一致的网络环境标准,统一在这个网络环境标准下进行性能测试,避免干扰测试结果的分析。

发布于: 2020 年 11 月 08 日阅读数: 43
用户头像

还未添加个人签名 2018.03.26 加入

还未添加个人简介

评论

发布
暂无评论
[架构师训练营第 1 期] 第七周命题作业