架构第七周作业
性能压测的时候,随着并发压力的增加,系统响应时间和吞吐量如何变化,为什么?
用你熟悉的编程语言写一个 Web 性能压测工具,输入参数:URL,请求总次数,并发数。输出参数:平均响应时间,95% 响应时间。用这个测试工具以 10 并发、100 次请求压测 www.baidu.com。
随着并发压力增加,吞吐量先增加后下降,响应时间先平缓变化后急剧上升。因为系统资源有限,并发越高消耗资源越多,资源消耗到达某个极限时,吞吐能力急剧下降,响应时间急剧上升。
复制代码
性能压测的时候,随着并发压力的增加,系统响应时间和吞吐量如何变化,为什么?
用你熟悉的编程语言写一个 Web 性能压测工具,输入参数:URL,请求总次数,并发数。输出参数:平均响应时间,95% 响应时间。用这个测试工具以 10 并发、100 次请求压测 www.baidu.com。
随着并发压力增加,吞吐量先增加后下降,响应时间先平缓变化后急剧上升。因为系统资源有限,并发越高消耗资源越多,资源消耗到达某个极限时,吞吐能力急剧下降,响应时间急剧上升。
#!/usr/bin/env python
# encoding: utf-8
from gevent import monkey
monkey.patch_all()
import gevent
import time
import requests
from gevent import pool
URL = 'https://baidu.com'
result = []
def get(url):
start = time.perf_counter()
response = requests.get(url)
end = time.perf_counter()
result.append(end-start)
def main():
p = pool.Pool(10)
tests = []
for i in range(100):
tests.append(p.spawn(get, URL))
gevent.joinall(tests)
print(f'平均响应时间: {sum(result)/100}')
print(f'95%响应时间: {sorted(result)[94]}')
if __name__ == '__main__':
main()
还未添加个人签名 2019.09.09 加入
还未添加个人简介
促进软件开发及相关领域知识与创新的传播
评论