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

news2024/11/26 12:32:28

在这里插入图片描述

什么是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.coloradmin.cn/o/1342809.html

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

相关文章

一篇文章掌握 NestJS 所有的生命周期以及生命周期的执行时机

前言 NestJS 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的框架,它使用 TypeScript 作为开发语言,也支持原生的 JavaScript。在 NestJS 中,生命周期事件是一个重要的概念。在我们构建和管理应用程序时,有时需要在特定…

二、RK3588-安装Opencv-4.8.1(C++版本)

1.前言 OpenCV是一个跨平台的计算机视觉和机器学习软件库,基于Apache2.0许可(开源)发行。它可以在Linux、Windows、Android和Mac OS操作系统上运行。OpenCV由一系列C函数和少量C类构成,同时提供了Python、Ruby、MATLAB等语言的接口…

HALCON报错#2021:System clock has been set back 解决方案

如果操作系统修改过时间,再更新到正常的时间后,打开halcon可能会报错#2021:System clock has been set back. 解决方案: 1、联网同步Windows 系统时间。 2、检查以下目录中是否有超过当前时间的文件(删除&#xff09…

Java2023

文章目录 DOS系统正则表达式原理对象和类IDEA快捷键单例设计模式final关键字final使用注意事项抽象类接口内部类局部内部类(有类名)匿名内部类(无类名)★★成员内部类静态内部类枚举类型的使用Annotation注解异常try-catchthrows自定义异常十三章 包装类String 类的常用方法…

Prometheus 14 点实践经验分享

这是 2017 年的 promcon 的分享,原文地址在这里,作者 Julius Volz,今天偶然看到,虽然已经过去 6 年,有些实践经验还是非常值得学习。做个意译,加入一些自己的理解,分享给大家。 埋点方面 1. 所…

腾讯经典面试题-如何做一个迷你版的微信抢红包呢?

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码、Kafka原理、分布式技术原理、数据库技术🔥如果感觉博主的文章还不错的…

9个简单有效的用户需求分析方法,让你的产品更符合用户心理预期

作为一名互联网产品经理,需求分析是我们工作中最为重要的环节之一。正确地理解用户需求,为用户提供更好的产品体验,是我们的首要任务。以下是一些关于如何做好需求分析的建议,希望对大家有所帮助。 了解用户 在需求分析的过程中&a…

羊大师讲解,羊奶怎么加热才不容易破坏营养

羊大师讲解,羊奶怎么加热才不容易破坏营养 随着人们对健康饮食的重视,越来越多的人开始选择羊奶作为补充营养的饮品。在加热羊奶的过程中,如果方法不当,很容易造成营养价值的损失。那么,如何加热羊奶才能最大程度地保…

腾讯云轻量应用服务器性能差吗?

腾讯云轻量应用服务器性能如何?轻量服务器CPU采用什么型号?处理器计算性能如何?轻量应用服务器会不会比云服务器CVM性能差?腾讯云服务器网txyfwq.com详解轻量CPU型号主频、处理器性能、内存、公网带宽、月流量、不同地域速度测试、…

共享单车之租赁需求预估

文章目录 第1关:数据探索与可视化第2关:特征工程第3关:租赁需求预估 第1关:数据探索与可视化 相关知识 为了完成本关任务,你需要掌握: 读取数据 数据探索与可视化 读取数据 数据保存在./step1/bike_train…

Gooxi受邀出席操作系统与AI技术应用实践沙龙·OC城市行·深圳站活动

2023年是大模型元年,国内诸多AI、互联网公司争先恐后加码投入“练模”。AI产业快速发展行业高速运转,业内人称这是继蒸汽机、计算机之后开启新一轮科技革命的技术。但AI大模型是一个资本密集、人才密集和数据密集的产业,如何促进AI大模型落地…

Java之程序、进程、线程、管程和并发、并行的概念

文章目录 1. 进程与线程1.1 程序1.2 进程1.3 线程1.4 管程 2.并行与并发2.1 并发2.2 并行 1. 进程与线程 1.1 程序 程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。简单的说就是我们写的代码。 1.2 进程 (1&…

05-认证服务中多种认证方式的实现

多种认证方式 统一认证入口 目前各大网站支持账号密码认证、手机验证码认证、扫码登录认证等多种认证方式,Spring Security框架也支持多样化的认证方案 账号和密码认证: 采用OAuth2协议的密码模式即可实现手机号加验证码认证: 用户认证提交的是手机号和验证码并不是账号和密…

软件测试/测试开发丨Windows Appium环境搭建

windows 版本 Appium 环境搭建 安装 nodejs 下载.msi文件 https://nodejs.org/en/download/ 注意: 1、下载12.*版本双击安装即可。 2、无须配置环境变量,直接重启一个 cmd 输入下面的命令,能够查看这两个版本号即安装成功。 安装 appium desktop 直…

如何在Docker环境下安装火狐浏览器并结合内网穿透工具实现公网访问

文章目录 1. 部署Firefox2. 本地访问Firefox3. Linux安装Cpolar4. 配置Firefox公网地址5. 远程访问Firefox6. 固定Firefox公网地址7. 固定地址访问Firefox Firefox是一款免费开源的网页浏览器,由Mozilla基金会开发和维护。它是第一个成功挑战微软Internet Explorer浏…

【LeetCode】修炼之路-0001-Two Sum(两数之和)【python】【简单】

前言 计算机科学作为一门实践性极强的学科,代码能力的培养尤为重要。当前网络上有非常多优秀的前辈分享了LeetCode的最佳算法题解,这对于我们这些初学者来说提供了莫大的帮助,但对于我这种缺乏编程直觉的学习者而言,这往往难以消化吸收。(为什么别人就能想出这么优雅…

tcp/ip实现两个手机之间连接同步显示

app主界面 选择一:TCP客户端 选择二:TCP服务端 点击下图item时进入曲线绘制页面 如果是服务器端它不需要连任何设备就可以直接进入绘制界面如果是TCP的话就不能直接进入,否则就会提示未连接网络连接不能放在主线程,页面去调方法&…

Java限流方案常用算法详解 固定时间窗口 滑动时间窗口 漏桶限流 令牌桶限流

前言 为什么要做限流? 服务需要保护自己,以免被太多的请求淹没(无论是恶意或无意的),从而保持可用性。 举个生活中的例子,某个景区,平时可能根本没什么人前往,但是一旦到了国庆假日…

Python中的并发编程(7)异步编程

异步编程 Python3.4后新增了asyncio模块,支持异步编程。 异步是在一个线程中通过任务切换的方式让多个任务”同时“进展。asyncio不涉及线程/进程切换,减少了线程/进程创建、上下文切换的开销,更轻量级。 asyncio的核心是事件循环&#xff0…

仓储3代电子标签接口文档-V1.2

电子标签标签注册 通过手动触发电子标签注册到系统,注册成功就可以进行功能测试。 仓储3代注册 方式1:(四灯外供电版本标签) 标签左测中间按键连按三次 方式2:(电池供电版本标签) 标签右下角左下角按键&#xff0…