QPS¶
QPS: Queries Per Second
QPS = 并发数 / 平均响应时间
QPS 一定是跟并发数联系在一起的,离开并发数谈 QPS 是没意义的
系统吞吐量几个重要参数:QPS、并发数、响应时间
QPS:每秒钟 request 数量
并发数: 系统同时处理的 request
响应时间: 一般取平均响应时间
其中QPS有时也会用TPS
系统的性能:
如果只看吞吐量,不看响应时间是没有意义的。
吞吐量的值必需有响应时间来卡
响应时间吞吐量和成功率要挂钩
性能测试要统一考虑这么几个因素:
Thoughput 吞吐量,
Latency 响应时间,
资源利用(CPU/MEM/IO/Bandwidth…),
成功率,
系统稳定性
一,你得定义一个系统的响应时间 latency,建议是 TP99,以及成功率
二,在这个响应时间的限制下,找到最高的吞吐量
三,在这个吞吐量做 Soak Test,比如:使用第二步测试得到的吞吐量连续 7 天的不间断的压测系统。
四,找到系统的极限值。比如:在成功率 100% 的情况下(不考虑响应时间的长短),系统能坚持 10 分钟的吞吐量。
五,做 Burst Test。用第二步得到的吞吐量执行 5 分钟,然后在第四步得到的极限值执行 1 分钟,再回到第二步的吞吐量执行 5 钟,再到第四步的权限值执行 1 分钟,如此往复个一段时间,比如 2 天
六、低吞吐量和网络小包的测试
是不是很繁锁?是的,只因为,这是工程,工程是一门科学,科学是严谨的。
上图横坐标是并发用户数。绿线是 CPU 使用率;紫线是吞吐量,即 QPS;蓝线是时延。