性能优化 -1- 压测
随着并发压力的增加,系统响应时间和吞吐量如何变化
常用性能测试指标:
相应时间 RT , Response Time : 用户感受到的时间(客户端视角)。应用系统从发出请求开始到收到最后响应数据所需要的时间。直观的反映了系统的快慢
并发数: 系统能够同时处理请求的数目,系统的负载特性。对于网站而言,并发数即系统并发用户数,指同时提交请求的用户数目。注意与在线用户数(当前登录系统的用户数)和系统用户数(可能访问系统的总用户数)的区别。一般来说,并发数不会太大,淘宝双十一高峰并发数可能是百万级别,可能同时在线数达到亿级,用户数可能超过十亿。
吞吐量: 单位时间内系统处理的请求数量,系统的处理能力。对于网站,请求数/秒,页面数/秒,访问人数/天,处理的业务数/小时
QPS(TPS): Transactions Per Second 每秒事务数
性能计数器: 描述服务器或操作系统性能的数据指标,包括 System Load、对象与线程数、内存使用、CPU 使用、磁盘与网络 I/O 等指标。
一个系统吞吐量通常由 QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降。
并发数不变:QPS 不断增加,QPS 超过最大吞吐量后,会有大量请求等待,平均响应时间急剧下降
QPS 不变:增加并发数,会导致 CPU 并发线程过多,线上上下文切换频繁,内存消耗增加,从而使平均响应时间下降
参考:http://www.ha97.com/5095.html
用你熟悉的编程语言写一个 Web 性能压测工具
要求:输入参数:URL,请求总次数,并发数。输出参数:平均响应时间,95% 响应时间。用这个测试工具以 10 并发、100 次请求压测 www.baidu.com。
实现环境:Python, Locust
示例代码:
执行方法:10 并发 user,每次请求间隔小于 1S。总请求 1000 次
压力测试结果:平均响应时间 = 95% 响应时间 = 22ms
评论