什么是QPS,什么是RT

news2024/10/5 14:25:48

 

 

🏆今日学习目标:

🍀什么是QPS,什么是RT
创作者:林在闪闪发光
⏰预计时间:30分钟
🎉个人主页:林在闪闪发光的个人主页

 🍁林在闪闪发光的个人社区,欢迎你的加入: 林在闪闪发光的社区

目录

典型回答

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


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


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

RT= 并发数/QPS

QPS= 并发数/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/741007.html

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

相关文章

生产慢查询问题分析

1.问题描述 7月1日零点set_24出现大量慢查询告警,经DBA定位为子系统涉及的一条查询语句出现慢查询,引起set_24的cpu使用率突增,触发大量告警,查看生产执行计划发现慢查询为索引跳变引起;具体出现问题的sql语句如下&am…

【裸机开发】I2C 通信接口(三)—— I2C 底层驱动接口实现

目录 一、I2C 初始化 二、产生开始 / 停止信号 1、开始信号 2、重复开始信号 3、停止信号 三、向总线上发送数据(阻塞模式) 四、从总线上读取数据(阻塞模式) 五、整合:数据读写统一调用接口 一、I2C 初始化 初…

springboot驾校管理系统

框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 …

springboot+dynamic-datasource实现多数据源动态切换,非@DS注解方式

springbootdynamic-datasource实现多数据源动态切换,非注解 一、前言二、方案思路三、代码实现 一、前言 最近在分析SaaS平台多租户的功能,必然涉及数据库部分的功能,多租户的设计方案要考虑租户隔离数据和租户共享数据,共享数据…

concrt140.dll怎么修复?哪种修复方法更值得推荐

运行软件的时候,计算提示找不到concrt140.dll,第一次遇到的小伙伴肯定不知道是什么意思。concrt140.dll是Microsoft Visual C Redistributable for Visual Studio 2015的一部分。它是一个动态链接库文件,包含在Windows操作系统中。这个文件主…

【Python】瓶装液位检测系统

文章目录 概要效果图整体架构流程技术细节 概要 本代码是一个简单的GUI应用程序,用于瓶装液位检测系统。 效果图 整体架构流程 整体架构流程如下: 创建GUI窗口和必要的部件: 创建一个主窗口(root)作为GUI应用程序的…

分享一套开源充电桩云平台(v2.5.1)-- 支持二轮(电动自行车)、四轮(电动汽车)

开源充电桩云平台(v2.5.1) 支持二轮(电动自行车)、四轮(电动汽车) 后台体验地址 二轮后台体验地址,star star : 点我访问 四轮后台体验地址,star star : 点我访问 用户端二维码 公众号二维码 小程序二维…

攻防世界-WEB2

代码审计 首先进行代码审计 <?php $miwen"a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";function encode($str){$_ostrrev($str);// echo $_o;for($_00;$_0<strlen($_o);$_0){$_csubstr($_o,$_0,1);$__ord($_c)1;$_cchr($__);$_$_.$_c; …

2023- itwangyang - mac mysql 终端启动命令

在mac上使用mysql终端进行操作时&#xff0c;需要先启动mysql服务。以下是启动mysql服务的命令&#xff1a; sudo /usr/local/mysql/support-files/mysql.server start执行该命令后&#xff0c;会出现一些提示信息&#xff0c;等待一段时间后mysql服务就启动成功了。 接下来&…

【Java】面向对象基础 之 继承

一、继承 在前面的章节中&#xff0c;我们已经定义了Person类&#xff1a; class Person {private String name;private int age;public String getName() {...}public void setName(String name) {...}public int getAge() {...}public void setAge(int age) {...} }现在&am…

git报错:remote: Access denied (URL 403)

git报错&#xff1a;remote: Access denied fatal: unable to access ‘ https:/ /gitee. cohe requested URL 403 大概的原因&#xff0c;是之前更改了 可能因为我之前在git bash中配过ssh&#xff0c;系统已经将指向git的用户设置了别的位置&#xff0c;所以…

DAY44:动态规划(四)整数拆分(递归+DP递推都可以做,注意区别和理解)

文章目录 343.整数拆分思路1&#xff1a;递归法&#xff08;最直观的想法&#xff09;递归思路普通递归写法注意点&#xff1a;max的嵌套普通递归存在的问题 记忆化搜索递归写法时间复杂度 递归解法总结 思路2&#xff1a;动态规划&#xff08;注意递推的理解&#xff09;确认D…

Transformer 模型详解

Transformer模型 https://blog.csdn.net/m0_67084346/article/details/128138486 https://blog.csdn.net/benzhujie1245com/article/details/117173090 2017 年&#xff0c;Google 在论文 Attention is All you need 中提出了 Transformer 模型&#xff0c;其使用 Self-Atten…

一个SpringMVC的小项目

一个图书管理小项目&#xff1a; 定义对应的表结构&#xff0c;为了学习所以才添加大量的 SQL 规则&#xff0c;要记得针对货币的处理方案 create table if not exists tbl_books( id bigint primary key auto_increment,book_name varchar(32) not null,book_price numeric(8…

专业的PDF文件压缩工具推荐,让你的PDF文件轻松压缩

​在参加专业的比赛时&#xff0c;就需要用到pdf文件&#xff0c;如果pdf文件过大操作和分享起来就特别不方便&#xff0c;其实可以使用专业的pdf文件压缩工具来处理。今天就分享一款pdf在线压缩工具&#xff0c;通过浏览器就可以快速完成pdf压缩&#xff08;https://www.yasuo…

SQL22 统计每个学校的答过题的用户的平均答题数

SELECT university,COUNT(qt.question_id)/COUNT(distinct(qt.device_id)) avg_answer_cnt FROM question_practice_detail qt LEFT JOIN user_profile ut ON qt.device_idut.device_id GROUP BY university

使用Word轻松实现PDF转Word

以前WPS还能通过每天打卡白嫖会员&#xff0c;最近不行了&#xff0c;害&#xff0c;羊毛没了 现在重新回归Word&#xff0c;利用Word就可以将PDF转化为Word 一、通过Word新建一个Word文档并打开 二、点击 文件 —> 打开 三、浏览&#xff0c;找到要转的PDF 四、点击确定&…

基础篇--初识STM32

初识STM32 STM32是什么 ST&#xff1a;意法半导体 M&#xff1a;MCU/MPU32:32位 ST累计推出了&#xff1a;5大类、18个系列、1000多个型号的Cortex内核微控制器 STM32芯片分类 ST中文社区网&#xff1a;https://www.stmcu.org.cn/ ST官网&#xff1a;https://www.st.com …

4.5Java EEMyBatis缓存机制

一、 一级缓存 MyBatis的一级缓存级别 MyBatis的一级缓存是SqlSession级别的缓存。如果同一个SqlSession对象多次执行完全相同的SQL语句时&#xff0c;在第一次执行完成后&#xff0c;MyBatis会将查询结果写入到一级缓存中&#xff0c;此后&#xff0c;如果程序没有执行插入、…

Mysql (insert,update操作)

1.创建表&#xff1a; 创建员工表employee&#xff0c;字段如下&#xff1a; id&#xff08;员工编号&#xff09;&#xff0c;name&#xff08;员工名字&#xff09;&#xff0c;gender&#xff08;员工性别&#xff09;&#xff0c;salary&#xff08;员工薪资&#xff09; …