概述
并发数、吞吐量的概念最初用来衡量网络设备的性能,后来推广到服务器及业务上评估系统的整体性能。
一、网络设备的并发数、吞吐量
并发数(Concurrency):
也叫并发连接数,指网络设备所能处理的最大会话数量。这里的会话数是指请求->响应一次会话。
吞吐量(Throughput):
用户请求是由一个个数据包组成,网络设备(防火墙/路由器/交换机)对每个数据包的处理要耗费资源。吞吐量是指在不丢包的情况下单位时间内通过网络设备的数据包数量。
网络层面并发数和吞吐量的关系:
并发数x包长度=吞吐量
参考:吞吐与并发关系
可以看出,在网络层面考察吞吐量,除了并发数,还要考虑请求包的大小(长度)。用于度量网络设备时候,可以用byte/秒。
二、服务器及业务上的并发数、吞吐量
用于指网站性能/服务器性能时候:
并发数:系统同时处理的请求数(分为查询类请求数、事务类请求数)。
吞吐量:系统在单位时间内处理请求的数量。只不过是一个很宽泛的术语,大家经常指的吞吐量的单位可能是:TPS/QPS、页面数/秒、人数/天、处理业务数/小时等等。
几个相关的概念:TPS、QPS、RPS
TPS:Transactions Per Second(每秒事务处理数),指服务器每秒处理的事务次数。一般用于评估数据库、交易系统的基准性能。
QPS:Queries Per Second(查询量/秒),是服务器每秒能够处理的查询次数,例如域名服务器、Mysql查询性能。
RPS:Request Per Second(请求数/秒)
RPS(Request Per Second)和QPS可以认为是一回事。
RT:Response Time(响应时间):客户端发一个请求开始计时,到客户端接收到从服务器端返回的响应结果结束所经历的时间,响应时间由请求发送时间、网络传输时间和服务器处理时间三部分组成。也叫Think Time。
并发数与TPS/QPS的关系:
QPS(TPS)= 并发数/平均响应时间
这里的并发数如果为事务处理请求数,则为TPS,如果为查询请求数,则为QPS。
参考:http://www.ha97.com/5095.html
回到题主的问题:并发数高,吞吐量是否必然高?
个人觉得不一定。
如果谈的是网络设备,参照:并发数x包长度=吞吐量,吞吐量依赖于并发数和包长度。
如果谈的是服务器及完整整体性能,需要明确吞吐量的度量指标,假定以吞吐量以QPS作为度量指标,如果并发数高,但平均响应时间上不去,则QPS并不一定高。
最后
以上就是舒适板凳为你收集整理的吞吐量、并发量的全部内容,希望文章能够帮你解决吞吐量、并发量所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复