写点什么

第七周作业 & 总结

用户头像
胡益
关注
发布于: 2021 年 01 月 10 日

作业一(至少完成一项):

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


性能测试是一个总称,具体可细分为性能测试、负载测试、压力测试、稳定性测试。

吞吐量 TPS = (1000ms / 响应时间 ms) * 并发数

性能测试:a~b 并发数增加,TPS 快速增加。负载未达到系统软硬件瓶颈,对请求立即做出响应,吞吐量与负载呈线性关系,系统有充足的资源。

负载测试:b~c 并发数增加,TPS 增长速度变小。系统无法一次性处理所有响应,响应时间开始递增,吞吐量随负载增加缓慢上涨,系统资源紧张。

压力测试:c~d 并发数增加,TPS 反而开始下降。系统资源消耗殆尽,响应时间快速上涨,吞吐量迅速下降,系统超负荷运行很可能崩溃。


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

import geventimport timeimport requestsfrom gevent import pool
URL = 'https://www.baidu.com/'results = []

#http get请求def get(url): begin = time.perf_counter() response = requests.get(url) end = time.perf_counter() results.append(end - begin)

def main(): pools = pool.Pool(10) tests = [] for i in range(100): tests.append(pools.spawn(get, URL)) gevent.joinall(tests) print('平均响应时间: '+ str(sum(results)/100)) print('95%响应时间: '+ str(sorted(results)[94]))
if __name__ == '__main__': main()
复制代码


作业二 总结


用户头像

胡益

关注

还未添加个人签名 2020.11.06 加入

还未添加个人简介

评论

发布
暂无评论
第七周作业&总结