性能测试的初步方案

449 阅读2分钟

1.老项目

如果是老项目,可通过分析中间件日志,查看后台接口请求访问最多的top10

awk '{print $7}' access.log|sort|uniq -c|sort -rn|head -10

2.新项目

新项目是还没有上线,在上线前希望进行一轮压测,评估项目性能是支撑当前的用户,这个时候性能的预期指标更为重要,但是由于是新项目,线上并没有任何的历史监控数据和日志数据,所以之前介绍的方法就不再适用,这个时候需要使用另外一种方法来评估性能指标,那就是【二八定律】

二八定律是最重要的只占其中一小部分,约20%,其余80%尽管是多数,却是次要的。

二八定律算法:80%请求/20%时间

如何来评估? 1.首先预估业务的每日总请求数 2.确定业务的运行时间

举例: 某网站新增一个每日签到送积分的功能 网站的注册用户1000W,日活跃用户大概是100W左右,那么最极端的情况下,这100W都会来签到(实际不会这么多人签到,但是评估指标要尽量往高评,以免出现极端情况)

那么每天大概有100W签到请求,80%请求数就是100W*0.8=80W

最终预期的Tps=80W请求/12960S=61左右

为了保险一点,再乘以冗余系数(3-5之间)

最终TPS预期为61*3=183

将来项目上线后,可以通过对项目接口的峰值监控,来对比之前评估的算法结果,调整冗余系数,形成一套本项目的性能模型

那么将来上线后,接口的访问量真的和计算的一模一样吗?

不是,性能测试从来不是一门非常精确的技术

二八定律也并不是100%适用所有业务场景,在没有任何历史数据参考的背景下,二八定律相对来说是比较靠谱的算法