[架构师训练营第 1 期] 第七周命题作业
题目
性能压测的时候,随着并发压力的增加,系统响应时间和吞吐量如何变化,为什么?
用你熟悉的编程语言写一个 Web 性能压测工具,输入参数:URL,请求总次数,并发数。输出参数:平均响应时间,95% 响应时间。用这个测试工具以 10 并发、100 次请求压测 www.baidu.com。
第一题
性能压测的时候,随着并发压力的增加,系统会先后经过一般性能测试、负载测试、压力测试三个阶段。
一般性能测试是在系统设计范围之内对系统持续施加压力。
在这个阶段中,并发压力增加,吞吐量(如每秒处理事务数 TPS)也随之增加,二者呈近似线性关系。
因为在设计范围内,系统资源足够应对该压力。
负载测试是以系统安全临界值为目标对系统持续施加压力。
在这个阶段中,并发压力增加,吞吐量依然随之近似线性增加,但是增长率相对一般性能测试较缓慢。
因为超出设计范围,系统资源开始出现竞争,但因为系统留有一定余量,所以吞吐量仍会保持一定上升。
压力测试是在超过安全负载的情况下,对系统持续施加压力,直到系统崩溃或不能再处理任何请求。
在这个阶段中,并发压力增加,吞吐量反而下降。
因为超出安全临界值,系统资源的使用已经完全饱和,没有更多资源来处理新请求,而已有资源还在竞争。
第二题
使用 JavaScripts 编程语言写一个题目所需的 Web 性能压测工具并运行测试如下:
测试工具
辅助函数
测试代码
测试结果
结论
上面显示的是使用联通 4G 网络环境测试的结果,而在此之前使用移动 4G 测试的结果是平均响应时间 400 ms 左右、95% 响应时间 200 ms 左右,在此之后使用光纤网络测试结果是平均响应时间 90 ms 左右、95% 响应时间 100 ms 左右。这说明,不同网络环境对测试的结果影响很大,网络环境或许也应该作为性能优化的分层思想的其中一层来考虑,如若不然,那么应该为性能测试设定一个一致的网络环境标准,统一在这个网络环境标准下进行性能测试,避免干扰测试结果的分析。
版权声明: 本文为 InfoQ 作者【猫切切切切切】的原创文章。
原文链接:【http://xie.infoq.cn/article/c43230252957e05c602f51422】。文章转载请联系作者。
评论