需求
“假设一个系统的业务有登录、浏览帖子、发送新贴、回复帖子,访问高峰是上午10点,日访问高峰PV约5208(含登录1300、浏览2706、发帖526、回帖676)。系统响应时间要求小于3s,试计算此系统的tps以及并发数”
每秒的PV量并不直接等同于TPS,因为一次客户请求可能包含了很多资源请求。如果我们不关心页面刷新时请求资源的耗时,此时我们就把每秒PV等同于TPS;
估算tps=5280/3600=1.5吗? 业务量一般要取系统业务高峰的值,才能代表系统的实际处理能力;
可以按照二八原则。即80%的业务在20%的时间内完成,TPS=(5208*80%)/(3600*20%)=5.8
估算并发数(由tps进行估算,由在线活动用户数估算,根据经验估算)
这里我们采用第一种方法
TPS=事务数/时间,假设所有的事务都来自不同的用户,那么并发数=事务数=tps*时间。
vu=tps*(runtime+thinktime);vu表示此业务的虚拟用户数,即并发数;runtime是测试程序/脚本运行一次所消耗的时间,包含事务时间+非事务时间。thinktime是模拟用户思考或者填写表单消耗的时间;
得出并发数=5.8*13=75.4 取整76
由于我们计算并发数,取得是系统的tps(登录,浏览,发帖,回帖),实际计算出来的并发是系统业务的总并发数,需要按比例分配到不同的业务中
每个业务模块的TPS计算公式=(高峰业务量*80%)/(访问时间*20%)
并发数目前还是估值,具体还是需要在性能测试执行时需要根据实际情况调整。衡量性能的指标还要参考tps实际达到了多少,响应时间是多少,系统硬件(cpu、内存等)指标是否限定范围内等要求;