关注△mikechen的互联网架构△,10年+BAT架构经验倾囊相授
大家好,我是 mikechen | 陈睿 。
在很多高并发场景中(譬如,阿A里的双11等),经常提到 QPS、TPS、RT、吞吐量等指标。这些高并发高性能指标都是什么含义?如何计算?本文我们详解。@mikechen
系统吞度量
系统吞吐量指的是系统在单位时间内可处理的事务的数量,是用于衡量系统性能的重要指标。
例如在网络领域,某网络的系统吞吐量指的是单位时间内通过该网络成功传递的消息包数量。
举一个生活中的例子,一说就懂,比如:成都双流国际机场年旅客吞吐量达4011.7万人次,这里的系统单位时间就是年,完成的数量这里就是飞行人数。
上面谈到的是机场的吞吐量,而系统吞吐量指的是系统(比如服务器)在单位时间内可处理的事务的数量,是一个评估系统承受力的重要指标。
系统吞吐量有几个重要指标参数:
QPS
TPS
响应时间
并发数
下面,我逐一详解。
QPS
QPS(Queries Per Second):大家最熟知的就是QPS,这里我就不多说了,简要意思就是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
TPS
TPS(Transactions Per Second):意思是每秒钟系统能够处理的交易或事务的数量,它是衡量系统处理能力的重要指标。
具体事务的定义都是人为的,可以一个接口、多个接口、一个业务流程等等。
举一个例子,比如,在 web 性能测试中,一个事务是指事务内第一个请求发送到接收到最后一个请求的响应的过程,以此来计算使用的时间和完成的事务个数。
以单接口定义为事务为例,每个事务包括了如下3个过程:
a.向服务器发请求
b.服务器自己的内部处理(包含应用服务器、数据库服务器等)
c.服务器返回结果给客户端。
总结,在web性能测试中一个事务表示“从用户发送请求->web server接受到请求,进行处理-> web server向DB获取数据->生成用户的object(页面),返回给用户”的过程。
怎么计算TPS的呢?
举一个最简单的例子,如果每秒能够完成100次上面这三个过程,那TPS就是100。
一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量。
比如大家熟知的阿A里双 11,一秒峰值完成 58.3 万笔订单,这样就量化了系统处理高并发的重要指标。
QPS与TPS的区别
上面分别谈完了QPS与TPS,我们再来看看两者有什么区别呢?
假如,对于一个页面的一次访问算一个TPS,但一次页面请求,可能产生N次对服务器的请求,服务器对这些请求,就可计入QPS之中,即QPS=N*TPS。
又假如,对一个查询接口(单场景)压测,且这个接口内部不会再去请求其它接口,那么TPS=QPS。
RT响应时间
RT(Response-time)响应时间:执行一个请求从开始到最后收到响应数据所花费的总体时间,即从客户端发起请求到收到服务器响应结果的时间。
该请求可以是任何东西,从内存获取,磁盘IO,复杂的数据库查询或加载完整的网页。
暂时忽略传输时间,响应时间是处理时间和等待时间的总和,处理时间是完成请求要求的工作所需的时间,等待时间是请求在被处理之前必须在队列中等待的时间。
响应时间是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢。
并发数Concurrency
图片
并发数是指系统同时能处理的请求数量,这个也反应了系统的负载能力。
并发,指的是多个事情,在同一段时间段内发生了,大家都在争夺统一资源。
比如:
当有多个线程在操作时,如果系统只有一个 CPU,则它根本不可能真正同时进行一个以上的线程,它只能把 CPU 运行时间划分成若干个时间段,再将时间段分配给各个线程执行。
在一个时间段的线程代码运行时,其它线程处于挂起状态,这种方式我们称之为并发(Concurrent)。
并发编程属于高并发的一个重要分支,也是大厂的必备要求,如果想更加全面深入学习Java并发,可以查看我的原创系列:Java多线程与并发编程从0到1全部合集。
以上,是高并发指标(QPS、TPS、吞吐量等)的详细解析,欢迎评论区留言交流或拓展。
我是 mikechen | 陈睿 ,关注【mikechen的互联网架构】,10年+BAT架构技术倾囊相授。
新的架构专题内容,第一时间更新至:阿里架构师进阶全部合集。
本文已同步我的技术博客 www.mikechen.cc,更新至我原创的《30W+字阿里架构技术合集》中。
- 魔兽世界怀旧向:60年代任务背包最全获取攻略大家都知道在60年代,各个坐骑,宠物,都没有整合,而且任务物品也特别多,所以对背包的需求特别大,大部分背包都是靠裁缝获得,但是在...
- 当今全国姓蒋的有多少人口当今全国姓蒋的有多少人?蒋姓是中华传统姓氏之一,是一个有着多源流和多种族并且有悠久历史文化的姓氏。蒋姓是一个贵族姓氏,属于大姓...
- 登山赛车攻略新手入门技巧本篇Hill Climb Racing将为玩家们讲解登山赛车这款游戏中的一些基础技巧,方便这款游戏的玩家快速入门。虽然游戏的模式看起来很简单,但却隐...
- Kmplayer的各种功能设置Kmplayer的各种功能设置 现在能够播放视屏的播放器的数量犹如天上的星星数不胜数,能够播放高清的也是多如牛毛,但是要找一款方便实用的播...
- 快手怎麼樣才能火起來快手上火的八大方法:明確目標受眾,了解他們的興趣偏好。專注創建原創且有價值的內容,使用高品質的視覺效果、標題和配樂。使用相關標...
- 快播使用教程 如何彻底解决手机快播不可点播方法快播 (又叫Qvod或Q播)是一款基于准视频点播内核的、多功能、个性化的播放软件,与传统播放软件不同的是,快播集成了不一样的播放引擎,...
- 解除安全模式的方法(突破安全限制,恢复正常系统运行)摘要: 安全模式是计算机系统提供的一种特殊模式,用于解决系统出现问题时的紧急修复和诊断。然而,在某些情况下,用户可能需要解除安全...
- 福岛县在日本哪里福岛县位于日本本州岛的东北部,是日本47个都道府县之一。它东临太平洋,西接山形县和新潟县,南连茨城县和栃木县,北靠宫城县。福岛县...
- 本届世界杯美女球迷大赏卡塔尔世界杯进入决赛阶段,是时候欣赏一下观众席上的美女球迷了 以下照片均来自于本届世界杯,绝对没有拿往届的滥竽充数! 巴西 展开全...
- 2025年最新 | 傻瓜式教学 | 如何在国家中小学智慧教育平台上下载高清电子版教材前言 很多人都需要用到电子课本,特别很多学生升级升班后想在学校发下个学期的教材之前,利用暑假的时间提前预习。但是网上搜到的,往往...