首页 > 其他分享 >一文详解高并发大流量指标

一文详解高并发大流量指标

时间:2022-10-24 06:33:05浏览次数:53  
标签:请求 系统 并发 详解 TPS 服务器 QPS 一文


 

在很多阿里双11高并发场景经常提到QPS、TPS、RT、吞吐量等指标,这些高并发高性能指标都是什么含义?如何来计算?下面我一一详解

系统吞度量

 

系统吞吐量指的是系统在单位时间内可处理的事务的数量,是用于衡量系统性能的重要指标。

例如在网络领域,某网络的系统吞吐量指的是单位时间内通过该网络成功传递的消息包数量。

举一个生活中的例子,一说就懂,比如:成都双流国际机场年旅客吞吐量达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。

一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量。

比如大家熟知的阿里双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全部合集》。

标签:请求,系统,并发,详解,TPS,服务器,QPS,一文
From: https://www.cnblogs.com/IT-Evan/p/16726182.html

相关文章

  • CopyOnWriteArrayList与CopyOnWriteArraySet详解
    什么是CopyOnWrite容器【1】CopyOnWrite容器是基于并发模式Copy-on-Write模式(最简单的并发解决方案)实现的用于避免共享的数据集合。【2】CopyOnWrite容器又被成......
  • 邮件协议详解
    邮件的发送和接收过程——STMP、POP、IMAP、MIME电子邮件发送协议是一种基于“推”的协议,主要包括SMTP;邮件接收协议则是一种基于“拉”的协议,主要包括POP协议和......
  • python中format的详解
    format是字符串内嵌的一个方法,用于格式化字符串。以大括号{}来标明被替换的字符串。它通过{}和:来代替%。1、基本用法1.按照{}的顺序依次匹配括号中的值s="{}isa{}......
  • SpringMVC框架详解
    简述SpringMVC是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于Spring FrameWork的后续产品,已经融合在SpringWebFlow里面。Spring......
  • innordb并发基础知识
    说明:以下内容仅仅针对innordb引擎,其他的不一定通用 1、并发中可能存在的问题(1)读读不会有问题(2)读写有脏读、不可重复读、幻读的问题(3)写写有写丢失的问题 2、事......
  • php-fpm 配置详解
    php-fpm工作流程php-fpm全名是PHPFastCGI进程管理器php-fpm启动后会先读php.ini,然后再读相应的conf配置文件,conf配置可以覆盖php.ini的配置。启动php-fpm之后,会创建一......
  • Hibernate缓存及核心接口类详解
    Hibernate缓存概述一级缓存(session级别缓存)也叫事务级别的缓存二级缓存(sessionFactory缓存)也叫应用级缓存三级缓存(查询缓存)区别:一级缓存的生命周期和session的生命......
  • 10.stm32启动文件详解
    ......
  • Golang:4.1、Golang 并发编程-协程
    4.1、Golang并发编程-协程共语言中的并发是函数相互独立运行的能力。goroutines是并发运行的函数创建协程gotask()示例1packagemainimport("fmt""t......
  • 7.Python自定义排序详解
    如果以创建的对象作为列表中的元素,那么对列表进行排序时可使用sort()函数或sorted()函数,但要注意的是:①当排序对象为列表的时候两者适合的场景不同②sorted()函数会返......