性能测试场景分析与性能指标
性能场景分析
性能测试的目的就是要发现系统的瓶颈,优化他。
分析系统的性能潜在的风险点,可以从几个方面出发,分析端到端的请求链路、系统的分层结构、数据库/缓存/消息队列等中间件的使用。
1、性能测试场景及出发点
1)业务峰值稳定性:
大促活动等峰值业务稳定性考验,保障峰值业务不受损。
2)新系统上线 :
在新系统上线前,通过执行性能压测能够对系统的负载能力有较为清晰的认知,从而结合预估的潜在用户数量保障系统上线后的用户体验;准确探知站点能力,防止系统一上线即被用户流量打垮 。
3)技术升级验证 :
大的技术架构升级后进行性能评估,验证新技术场景的站点性能状态。
4)容量规划 :
对站点进行精细化的容量规划,为系统扩容,性能优化提供数据参考,节省成本投入,提高资源利用率。
5)性能瓶颈探测:
探测系统中的性能瓶颈点,进行针对性优化。
2、不同类型性能测试策略
1)基准测试
通过基准测试建立一个已知的性能水平(称为基准线),当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响 。
2)压力测试
评估系统处于或超过预期负载时系统的运行状况,关注点在于系峰值负载或超出最大载荷情况下的处理能力;同时也需要关注负载减小后,系统能否自我恢复。
3)负载测试
系统在不同负载下的性能表现,发现系统性能拐点,从而找出系统最佳性能。例如用户并发测试时通过递增并发用户数,查看系统性能指标变化。
4)配置测试
不断调整系统软硬件各种配置,系统性能达到最优时的最佳配置 。
5)稳定性测试
在特定的负载下(略高于正常负载)下,持续施压,验证系统能否长期稳定运行。
3、性能场景设计
分析系统的业务范围
从关键业务、访问量大、逻辑复杂等业务入手
性能指标
吞吐率:
后端服务器单位时间内处理了多少请求,例如这一秒钟内服务器收到了200的请求,并进行了处理。
吞吐量小于或者等于并发量
吞吐量越大,代表系统高并发性能越好
系统处理能力:
HPS:每秒点击次数,次/秒
TPS:系统每秒处理交易数(事务数),笔/秒
TPS = 并发数/平均响应时间
QPS:系统每秒处理查询次数,次/秒
不同行业的参考标准:
金融:1000TPS—50000TPS
保险:100TPS----100000TPS
制造:10TPS-----5000TPS
互联网电子商务:10000TPS----1000000TPS
互联网中型网站:1000TPS—50000TPS
互联网小型网站:500TPS–10000TPS
响应时间:
用户从开始请求到获取结果的时长。
响应时间越快,理论上吞吐量也会很大
错误率:
高并发海量请求,系统有没有出错误。
例如双11秒杀抢东西,去某宝买东西显示“当前支付人数太多,请稍候。”
在系统面临高压力的时候,有时候允许把部分用户请求拒绝。
参考标准:一般成功率不低于99.4%
并发用户数:
并发用户数指在同一时刻内,登录系统并点击业务进行操作的用户数量。
如何看性能测试结果
如何发现性能瓶颈
达到瓶颈的三大表现:
1、看吞吐量、tps 没有随着线程并发增加而增加
2、响应时间超出了预期
3、错误率过高
如果是测试中间件和数据库,还需要关注:
1、常用的数据库如MySQL指标主要包括SQL、吞吐量、缓存命中率、连接数等
行业参考标准:
SQL耗时越小越好,一般微秒级别
命中率越高越好,一般不能低于95%
锁等待次数越低越好,锁等待时间越短越好
2、常用的中间件例如Tomcat,weblogic等,指标主要包括GC垃圾回收频率、垃圾完全回收的平均时长、堆使用率、JDBC活动连接数等