【高性能篇】QPS概念、RT概念

在这里插入图片描述

什么是QPS,什么是RT?

  • ✔️典型解析
  • ✔️扩展知识仓
    • ✔️RT
  • ✔️QPS
    • ✔️ QPS和TPS
    • ✔️并发用户数
    • ✔️最佳线程数


✔️典型解析


QPS,指的是系统每秒能处理的请求数(Query Per Second),在Web应用中我们更关注的是Web应用每秒能处理的request数量。这个是衡量系统性能的重要指标。


RT,指的是响应时间(Response Time),是指从客户端发一个请求开始计时,到客户端接收到从服务器端返回的响应结果结束所经历的时间。

✔️扩展知识仓


✔️RT


响应时间(Response Time),是指从客户端发一个请求开始计时,到客户端接收到从服务器端返回的响应结果结束所经历的时间。


当我们评价一个网站的"快"和"慢"的时候,其实说的就是他的RT时间的长和短。当我们访问某个网站,有时候我们会说这个网站很"卡”,其实言下之意说的就是这个网站的RT很长。


如果一个网站的RT很长的话,就会特别的影响用户体验。所以,RT是很重要的一个指标。也是各个网站需要重点优化的。


拿一个游乐园的例子来说明一下可能会比较容易理解,比如我们去迪士尼乐园游玩时候,大多数的项目都是需要排队的。


为了让游客知道一个项目需要排队多久才能玩上,迪土尼做了很多事情,比如他们有一个App,专门可以提示每个项目的预计排队时间。再有就是每个项目的排队外都有一个小牌牌,上面写着预计排队时间。


在这里插入图片描述


但是,这个时间并不是凭空设定出来的,而是[计算]出来的。


迪士尼的排队时间计算方法:


1、迪士尼在每个项目的入口处和出口处都会设置工作人员。
2、入口处工作人员随机寻找游客,给游客一张小纸条,上面记录着游客开始排队的时间。
3、入口处工作人员提醒游客,项目游览玩之后,在出口处把小纸条交还给出口处的工作人员。
4、出口处工作人员在收到游客的小纸条后,会用: 当前时间-游客开始排队的时间 = 排队时长。
5、为了尽量让数据准确,一般会收集多个排队时长之后,计算一个亚均值。


以上就是迪士尼的排队时间计算法。其实,这也是RT的计算方法。在一个请求开始的时候记录时间,请求结束的时候再记录时间,两个时间的差值,就是RT了。


迪士尼的一个项目的RT包含了多个时间段: 排队时间、听项目讲解时间、项目准备时间、项目游玩时间等。


服务器响应时间也有多部分组成,一般包含:请求发送时间、网络传输时间和服务器处理时间等三部分。


✔️QPS


QPS,指的是系统每秒能处理的请求数(Query Per Second),在Web应用中我们更关注的是Web应用每秒能外理的request数量。这个是衡量系统性能的重要指标。有时候,我们也称之为吞叶量。


QPS和RT几乎总是成对出现的。当我们评价迪士尼的一个项目的好坏的时候,通常会包含这几个指标: 是否好玩、游玩时长以及可以同时容纳多少人。


这个可以同时容纳多少人,就可以简单的理解为QPS。很大程度上,一个项目同时可以容纳多少人,其实会大大的影响游客的游玩时长。


所以,QPS和RT之间是有着一定的关系的:


RT= 并发数/0PS
OPS= 并发数/RT

虽然上面的等式看上去,在并发数一定的情况下,想要提升QPS的话就只能降低RT。但其实并不是,以上只是QPS的计算方法。想要提升QPS往往有很多手段。


就像想要提升游乐设施的吞叶量,最首先想到的办法就是升级设备,比如增加游乐场地的面积,增加设备的座位数目,增加排队的队伍个数等。


在计算机系统中,想要提升QPS,主要可以在CPU、内存等硬件上面下功夫,比如提升CPU利用率、增加CPU数目、提升内存等。


✔️ QPS和TPS


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


次事务包含了以下三个过程:


1) 用户请求服务器
2) 服务器自己的内部处理
3) 服务器返回给用户


所以,TPS包含的时长就是三个过程的总和。


那么,TPS和QPS有什么区别呢,区别就在于一次事务的处理中,可能有N次请求,那么TPS就是这N个QPS的总和。


✔️并发用户数


并发用户数指的就是同时跑到一个项目前面排队的人数


在这里插入图片描述

关于并发用户数有两种常见的错误观点。


一种错误观点是把并发用户数量理解为使用系统的全部用户的数量, (比如迪士尼的飞跃地平线项目一天可能会接纳50万人,我们不能说这个50万就是并发用户数)。


还有一种错误观点是把用户在线数量理解为并发用户数量。 (比如晚上六点的时候,迪士尼的飞跃地平线项目排队加观看人数共有1万人,我们不能说这个1万就是并发用户数)。


并发用户数量的正确理解为: 在同一时刻与服务器进行了交互在线用户数量。(我们说,晚上六点的时候,共有8000人正在排排队使用飞跃地平线这个项目。这才是并发用户数)。


拿系统来说,我们说淘宝详情页的并发用户数,其实说的是同一时刻请求查看详情页的用户个数。有些用户虽然也在浏览详情页,但是它并没有在并发时刻和系统有交互,这就不算的。

✔️最佳线程数


最佳线程数指的就是一个项目最多可以容纳的人数,这里的容纳可以包含排队的人数。


在这里插入图片描述


迪士尼每新开一个场馆或者一个游戏项目的时候,都会是一个试运营的阶段。在试运营阶段,通过不断调整并发用户数来观察整个场馆或者项目的运行情况。


除了上线新场馆和新项目以外,有的是在节假日之前也会有一些类似的实验。


这和计算机软件的压测很像。就是不断的提高请求数目,来观察系统的QPS和系统的其他指标,如CPU情况、内存情况等。


性能压测的情况下,起初随着用户数的增加,QPS会上升并对CPU等影响不大,当到了一定的闻值之后,用户数量增加QPS并不会增加,或者增加不明显,同时CPU Load有飙高、内存占用大等情况发生。随之而来的伴随着请求的响应时间大幅增加。这个闻值我们认为是最佳线程数。


如果并发请求数目,超过了系统的最佳线程数,那么就会导致激烈的资源竞争,随着资源的匮乏甚至枯竭,整个系统也就面临着灾难。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/584264.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Radar System Pro - Plug Play Solution

Radar System Pro是一款功能多样且可定制的资源,旨在通过功能齐全且易于使用的雷达系统增强您的Unity项目。无论您是在开发第一人称射击游戏、策略游戏还是太空探索模拟器,我们的雷达系统都将为您提供所需的工具,以创建引人入胜且身临其境的体验。 雷达系统是一个模块化资产…

2023年华为OD机试(python)B卷-符合要求的结对方式

一、题目 题目描述: 用一个数组A代表程序员的工作能力,公司想通过结对编程的方式提高员工的能力,假设结对后的能力为两个员工的能力之和,求一共有多少种结对方式使结对后能力为N。 二、输入输出 输入描述: 5 1 2 2 2 3 4 第一行为…

Unity 贝塞尔曲线工具获取运动轨迹

Unity 贝塞尔曲线工具获取运动轨迹 一、介绍贝塞尔曲线二、Unity中贝塞尔曲线工具介绍1.创建一个空物体挂在上BezierSpline.cs脚本组件2.由上图可知刚创建出来的有两个点和两个手柄组成3.我们可修改其坐标看下效果4.这样我们就可以获得这两个点之间的指定数量的点来作为某个物体…

openGauss学习笔记-177 openGauss 数据库运维-逻辑复制-逻辑解码-逻辑解码概述

文章目录 openGauss学习笔记-177 openGauss 数据库运维-逻辑复制-逻辑解码-逻辑解码概述177.1 功能描述177.2 注意事项177.3 性能 openGauss学习笔记-177 openGauss 数据库运维-逻辑复制-逻辑解码-逻辑解码概述 177.1 功能描述 openGauss对数据复制能力的支持情况为&#xff…

资助26项!基金委公布一批原创探索项目资助结果!

根据《国家自然科学基金原创探索计划项目实施方案(试行)》要求,现将2023年度数理科学部资助的专项项目(指南引导类原创探索计划项目)相关信息予以公示: 国家自然科学基金委员会 数理科学部 2023年12月26日…

Linux 内核学习笔记: hlist 的理解

前言 最近阅读 Linux 内核时,遇到了 hlist,这个 hlist 用起来像是普通的链表,但是为何使用 hlist,hlist 是怎么工作的? 相关代码 hlist_add_head(&clk->clks_node, &core->clks); /*** clk_core_link_…

vue3项目使用pako库解压后端返回zip数据

文章目录 前言一、pako 介绍一些特点和功能:简单示例 二、vue3 实战示例1.安装后引入库安装:引用用自定义hooks 抽取共用逻辑部署小插曲 前言 外部接口返回一个图片数据是经过zip压缩的,前端需要把这个数据处理成可以显示的图片。大概思路:z…

68内网安全-域横向PTHPTKPTT哈希票据传递

今天讲PTH&PTK&PTT, PTH(pass the hash) #利用 lm 或 ntlm 的值进行的渗透测试 PTT(pass the ticket) #利用的票据凭证 TGT 进行的渗透测试 用的Kerberos 协议 PTK(pass the key) #利用的 ekeys aes256 进行的渗透测试 lm加密算法是2003以前的老版&…

vitis HLS中实现canny算法的IP核

一、前言 canny边缘检测主要用于提取图像的边缘,是最常用且有效的边缘检测算法。在AMD赛灵思提供的库函数中,使用xf::cv::Canny和xf::cv::EdgeTracing两个函数实现canny边缘提取。本文举例说明如何在vitis HLS 2023.1中实现canny算法。 二、xf::cv::Cann…

JUC常用并发工具类

JUC常用并发工具类 1、什么是JUC? JUC 就是 java.util.concurrent 包,这个包俗称 JUC,里面都是解决并发问题的一些东西,该包的位置位于 java 下 面的 rt.jar 包下面。 2、4大常用并发工具类 2.1 CountDownLatch CountDownLatch&#x…

基于Java车间工时管理系统(源码+部署文档)

博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…

《新传奇》期刊投稿论文发表

《新传奇》杂志是经国家新闻出版总署批准、面向国内外公开发行的综合性社科期刊,由湖北省文联主管,湖北今古传奇传媒集团有限公司主办,湖北优秀期刊。本刊旨在坚守初心、引领创新,展示高水平研究成果,支持优秀学术人才…

如何使用 NFTScan NFT API 在 Gnosis 网络上开发 Web3 应用

Gnosis Chain 是一个兼容 EVM 的区块链,专注于快速且低成本的交易功能,采用独特的双通证模型;xDai 是一种用于交易、支付和手续费的稳定币,权益证明(PoS)保护将由 GNO 通过共识层 Gnosis Beacon Chain 提供…

【JVM】虚拟机的组成+字节码文件组成+类的生命周期

什么是JVM? JVM 本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。 JVM的功能 1.解释和运行:对字节码文件中的指令实时的解释成机器码让计算机执行。 2.内存管理:自动为对象、方法等分配内存,自动…

【C++干货铺】STL中set和map的介绍和使用

个人主页点击直达:小白不是程序媛 C系列专栏:C干货铺 代码仓库:Gitee 目录 序列式容器 关联式容器 键值对 树形结构的关联式容器 set set的介绍 set的使用 set的模板参数列表 set的构造 ​编辑 set的容量 set的删除和查找 mult…

web等保评测需要实机查看的操作系统、服务器、数据库和应用部分

“等保测评”全称是信息安全等级保护测评。是经公安部认证的具有资质的测评机构,依据国家信息安全等级保护规范规定,受有关单位委托,按照有关管理规范和技术标准,对信息系统安全等级保护状况进行检测评估的活动。 本文陆续将遇到的…

2023“SEED”第四届江苏大数据--新能源赛道 复赛Btop2总结

第一名是真的强!基本都是第一,难以撼动。 昨天新能源赛道终于落下了帷幕,真的不是一般的卷。最后的排名都到了0.0几分的差距。跟队友很辛运复赛B榜单目前进入top3的行列,下面简单总结一下赛事过程。 初赛按照天级别预测未来一周各…

Linux iptables防火墙(一)

1.1 Linux防火墙基础 在 Internet 中,企业通过架设各种应用系统来为用户提供各种网络服务,如 Web 网站、 电子邮件系统、 FTP 服务器、数据库系统等。那么,如何来保护这些服务器,过滤企业不 需要的访问甚至是恶意的入侵呢&a…

算法设计与分析实验报告-贪心算法

校课程的简单实验报告。 算法设计与分析实验报告-递归与分治策略 算法设计与分析实验报告-动态规划算法 算法设计与分析实验报告-贪心算法 dijkstra迪杰斯特拉算法(邻接表法) 算法设计与分析实验报告-回溯法 算法设计与分析实验报告-分支限界法 …