【转载】QPS、PV 、RT(响应时间)之间的关系

本文涉及的产品
性能测试 PTS,5000VUM额度
简介:

在进行系统性能压测和系统性能优化的时候,会涉及到QPS,PV,RT相关的概念,本文总结一下QPS,PV,RT之间的关系,放在博客备忘,本文参考了之前在淘宝工作时候的一些资料。

QPS是什么?

QPS:单个进程每秒请求服务器的成功次数
QPS = req/sec = 请求数/秒

QPS如何统计?

QPS统计方式 [一般使用 http_load 进行统计] 
QPS = 总请求数 / ( 进程总数 * 请求时间 )

根据QPS推算PV:

单台服务器每天PV计算:
公式1:每天总PV = QPS * 3600 * 6
公式2:每天总PV = QPS * 3600 * 8

根据QPS,PV推算服务器数量

服务器数量 = 每天总PV / 单台服务器每天总PV

峰值QPS和机器计算公式:
原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间 
峰值时间每秒请求数(QPS):( 总PV数 * 80% ) / ( 每天秒数 * 20% )
峰值机器数量:峰值时间QPS / 单台机器的QPS

例子:
问:每天300w PV 的在单台机器上,这台机器需要多少QPS?
答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)
问:如果一台机器的QPS是58,需要几台机器来支持? 答:139 / 58 = 3

最佳线程数:

性能压测的情况下,起初随着用户数的增加,QPS会上升,当到了一定的阀值之后,用户数量增加QPS并不会增加,或者增加不明显,同时请求的响应时间却大幅增加。这个阀值我们认为是最佳线程数。

为什么要找最佳线程数

  1. 过多的线程只会造成,更多的内存开销,更多的CPU开销,但是对提升QPS确毫无帮助
  2. 找到最佳线程数后通过简单的设置,可以让web系统更加稳定,得到最高,最稳定的QPS输出

最佳线程数的获取:

  1. 通过用户慢慢递增来进行性能压测,观察QPS,响应时间
  2. 根据公式计算:服务器端最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间) * cpu数量
  3. 单用户压测,查看CPU的消耗,然后直接乘以百分比,再进行压测,一般这个值的附近应该就是最佳线程数量。

影响最佳线程数的主要因素:

  1. IO

IO开销较多的应用其CPU线程等待时间会比较长,所以线程数量可以开的多一些,相反则线程数量要少一些,其实有两种极端,纯IO的应用,比如proxy,则线程数量可以开到非常大(实在太大了则需要考虑线程切换的开销),这种应用基本上后端(比如这个proxy是代理搜索的)的QPS能有多少,proxy就有多少。

  1. CPU

对于耗CPU的计算,这种情况一般来讲只能开到CPU个数的线程数量。但是并不是说这种应用的QPS就不高,往往这种应用的QPS可以很高,因为耗CPU计算的应用,往往处理单次请求的时间会很短。

QPS和线程数的关系

  1. 在最佳线程数量之前,QPS和线程是互相递增的关系,线程数量到了最佳线程之后,QPS持平,不在上升,甚至略有下降,同时响应时间持续上升。

  2. 同一个系统而言,最佳线程数越多,QPS越高

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
11月前
|
搜索推荐 测试技术 数据库
QPS、TPS、RT、并发数、吞吐量分别是什么意思
QPS、TPS、RT、并发数、吞吐量分别是什么意思
1219 0
|
3月前
|
域名解析 运维 Serverless
函数计算产品使用问题之设置最大实例数为1和最大并发数为20,当请求数量超过20时,系统会如何处理
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
并行计算 前端开发 JavaScript
【修正版】QPS、TPS、RT、并发数、吞吐量理解和性能优化深入思考
在了解qps、tps、rt、并发数之前,首先我们应该明确一个系统的吞吐量到底代表什么含义,一般来说,系统吞吐量指的是系统的抗压、负载能力,代表一个系统每秒钟能承受的最大用户访问量。
4455 1
【修正版】QPS、TPS、RT、并发数、吞吐量理解和性能优化深入思考
|
5月前
|
测试技术
TPS、QPS和系统吞吐量的区别和理解
TPS、QPS和系统吞吐量的区别和理解
739 0
|
测试技术 应用服务中间件 Apache
QPS、TPS、并发用户数、吞吐量等定义
QPS (Queries Per Second) 是每秒查询率 ,是一台服务器 每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内 所处理流量多少的衡量标准, 即每秒的响应请求数,也即是最大吞吐能力。
3764 0
|
存储 网络协议 测试技术
slurm--高吞吐量计算管理指南
slurm--高吞吐量计算管理指南
687 0
QPS&TPS&&并发数&RT&PV&UV&IP
QPS&TPS&&并发数&RT&PV&UV&IP
112 0
|
Java 开发者 Sentinel
SentineI 服务降级之 RT 平均响应时间 | 学习笔记
快速学习 SentineI 服务降级之 RT 平均响应时间
241 0
|
前端开发 JavaScript Java
面试官:如何理解QPS,TPS,RT?
面试官:如何理解QPS,TPS,RT?
|
测试技术 应用服务中间件 Apache
一文辨明QPS、TPS、PV、UV、DAU、MAU、并发用户数、吞吐量~
一文辨明QPS、TPS、PV、UV、DAU、MAU、并发用户数、吞吐量~
879 0