我的编程空间,编程开发者的网络收藏夹
学习永远不晚

QPS、TPS、RT、并发用户数、吞吐量

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

QPS、TPS、RT、并发用户数、吞吐量

QPS

QPS Queries Per Second 是每秒查询率 ,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准, 即每秒的响应请求数,也即是最大吞吐能力。

TPS

TPS Transactions Per Second 也就是事务数/秒。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,

QPS和TPS区别

举例,请求一个index.html 页面,客户端发起了三个请求(css、js、index接口),那么此时TPS =1 、QPS =3 。

在针对单接口的时候TPS = QPS。

并发数

并发数(并发度):指系统同时能处理的请求数量,同样反应了系统的负载能力。这个数值可以分析机器1s内的访问日志数量来得到。

压测时,一般都是指定并发数来压出单实例的QPS拐点,即一步一步提高并发数来测出对应的QPS,平均RT,错误率

  • 并发数:100
  • 并发数:300
  • 并发数:500

吐吞量

吐吞量:吞吐量(Throughput)是指系统在单位时间内处理请求的数量,TPS、QPS都是吞吐量的常用量化指标

RT

响应时间:RT(Response-time)就是从客户端请求发起到服务器响应结果的时间。RT这个参数是系统最重要的指标之一,它的大小直接反应了当前系统的响应状态。基本和咱们用户体验息息相关,现在好一点监控系统一般都有三个RT,即平均、最大、最小。

P99,P95,P50

一般系统RT 100ms 以内是比较正常的,300ms 勉强可以接受,1s的话再加上一些其他的外因,给用户的体验就是实实在在的不爽了。

P99 < 1s,P95 < 300ms

上面几个名词的计算关系

  • QPS = 并发数 / 平均响应时间

  • 并发数 = QPS * 平均响应时间

计算1:QPS、RT、并发数计算

以下示例来着互联网文章-艾小仙

假设公司每天早上9点到10点1个小时内都有员工要上厕所,公司有3600个员工,平均每个员工上厕所时间为10分钟,我们来计算一下。

QPS = 3600/60*60 1

RT = 10*60 600秒

并发数 = 1 * 600 600

这样就意味着如果想达到最好的蹲坑体验,公司需要600个坑位来满足员工需求,否则的话上厕所就要排队等待了。


针对以上答案不是很好理解,我是这么分析的,其实上面的需求是 1个小时 让3600人拉完屎,即厕所服务的整体吞吐量需求为 3600人/1时 = 3600人/3600s = 1/s,即QPS = 1

那么需要多少个厕所实例来满足需求呢

由于单个厕所实例的qps = 1人/10m = 1人/600s。

所以需要 1人/s / 1人/600s = 600厕所实例

QPS

  • 厕所服务:3600人/1时 = 1 QPS
  • 厕所实例:1人/10m = 1/600 = 0.00167 QPS

响应时间

  • 厕所服务:1h

  • 厕所实例:10m

并发数

如果按照上面的计算公式 并发数 = QPS * 平均响应时间,那这里厕所实例的并发数等于多少呢?

1 * 1h = 3600??? 不对哦,这里的平均响应时间 是每个人的即1* 10m = 600

也可以这么理解厕所服务提供了 600 个厕所坑位,所以支持的最大并发数,即同时拉屎数 = 600…

  • 厕所服务:1QPS(服务的QPS) * 10m (实例的响应时间 一个call) = 600
  • 厕所实例:0.00167 QPS * 10m = 1

吞吐量

  • 厕所服务的吞吐量为 3600 TPH = 1 TPS

PV

PV(Page View):页面访问量,即页面浏览量或点击量,用户每次刷新即被计算一次。可以统计服务一天的访问日志得到。 可以通过Nginx、Apache之类的Web Server得到。

UV

UV(Unique Visitor):独立访客,统计1天内访问某站点的用户数。可以统计服务一天的访问日志并根据用户的唯一标识去重得到。可以通过Nginx、Apache之类的Web Server得到。

DAU

DAU(Daily Active User),日活跃用户数量。常用于反映网站、互联网应用或网络游戏的运营情况。DAU通常统计一日(统计日)之内,登录或使用了某个产品的用户数(去除重复登录的用户),与UV概念相似

MAU

MAU(Month Active User):月活跃用户数量,指网站、app等去重后的月活跃用户数量

计算2:峰值QPS和机器计算

原理:按二八定律来看,如果每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间 。

这里应该根据业务场景来定,例如这个时间 * 20%

针对一些政企机关单位这个时间不是 24h而是8h,应灵活运用。

公式

  • 峰值QPS:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)

  • 需要的机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器

示例

:每天100w PV 的在单台机器上,这台机器峰值是多少QPS

:( 1000000 * 0.8 ) / (86400 * 0.2 ) = 46 (QPS)

如果有成熟的监控可以从监控上去看实际的QPS与计算的偏差。

:如果一台机器的QPS是18,需要几台机器来支持?

:46/ 18 = 3

来源地址:https://blog.csdn.net/abu935009066/article/details/128134965

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

QPS、TPS、RT、并发用户数、吞吐量

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

QPS、TPS、RT、并发用户数、吞吐量

文章目录 QPSTPS并发数吐吞量RT计算1:QPS、RT、并发数计算PVUVDAUMAU计算2:峰值QPS和机器计算 QPS QPS Queries Per Second 是每秒查询率 ,是一台服务器每秒能够相应的查
2023-08-17

一文搞懂高并发性能指标:QPS、TPS、RT、吞吐量

一、QPS,每秒查询QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系统服务器的机器的性能经常用每秒查询率
2023-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录