前言

查阅了很多文章,发现很多人对于并发量和QPS这个理解都有些片面,或者只是一个模糊的概念。你肯定听过有人会说:我希望这个网站能支持10W并发量。老板,你确定是说的没错,你说的是10W并发量还是说10W流量?这是两个完全不同的概念。

概念

要理解并发量,首先先科普几个概念

  • PV(访问量):即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次。
  • UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。
  • IP(独立IP):即Internet Protocol,指独立IP数。00:00-24:00内相同IP地址之被计算一次
  • QPS:(Query Per Second)每秒钟request/事务 数量(QPS= 并发数/平均响应时间 )
  • 并发数: 系统同时处理的request/事务数(并发数 = QPS*平均响应时间)
  • 响应时间: 一般取平均响应时间

很多人认为并发量等同于QPS,其实它们是完全不一样的一个概念。

*- 并发数:并发数的意思是指网站或者系统同时处理的事务数或者请求数,这个“同时”取决于你的业务执行的时间。记住:重点是并非是同一秒或者毫秒执行的数量,是同一个业务的同时的执行数量。理解这个有利于理解并发数这个概念

- QPS:就是每秒钟执行的事务或者请求数。这个就是计算机或者系统的具体执行能力。QPS计算的方式很多,并没有一个完全统一的方式进行计算,具体还要根据相关的业务来进行推算,甚至有时候是通过业务部门的评估得出,一般取高峰值。我们可以在测试的时候模拟一个最大的QPS,从而算出系统能支持的最大并发数。*

分析

下面我尝试结合案例来分析下
在这里插入图片描述

这是爱站查询的B站的SEO信息,我们可以看到B站的日均IP大概是300多万,日均PV大概是2600万。那我们可以计算出B站的并发量大概是多少吗?首先我们要明确PV2600万不代表并发就是2600万,IP300万也不能说并发量就是300万,但是这两个值都是具有参考价值的。假设一天中80%的访问都集中在20%的时间内(峰值)
( 26000000 * 0.8 ) / (86400 * 0.2 ) = 1203 (QPS)
我们通过计算大约可以估算B站的QPS是1200。什么?你是不是觉得很吃惊?B站的QPS才1200?当然这里的qps只是一个平均值,并不是最大值,最大值肯定不会只有1200。那么它的并发量是多少?怎么计算呢?
答案是无法计算出来。并发量是一个业务同时执行的数量,具体是什么业务?一个网站这么多业务,有的用户在登录,有的用户在看视频,有的用户在刷弹幕,有的用户什么也不干。所以说并发量这个东西并不是单单根据PV或者IP就可以计算衡量出来的,它涉及大量用户行为和服务器配置架构以及业务执行时间,网络带宽等。
所以并发量其实就可以简单粗暴地认为就是你的网站能正常容纳的人数,注意是正常,实际上就是当前在线用户数。虽然这是不准确的,但是从某种意义上来讲,在线用户数就大概等于并发用户数了。所以我们可以大概估算出B站的每天并发量大概是200-400万左右这样子。当然了这里我说的是平均的值,可能有时候网站举办有些活动比如抢购,秒杀啊等个别高并发业务,是会达到上千万这种峰值。
再给一个数据,淘宝的日均PV达到2亿,日均IP有5000W,那么我就可以猜测它的平均并发量大概就是5000W上下,最大并发量肯定上亿了。

总结

并发量可以简单粗暴理解为在线用户数或者同时进行业务操作的用户数。QPS并不是并发量,但是有可能等于并发量。
下次如果再有人问:我要做一个支持10W并发的网站,你心理肯定要知道,他的意思其实是要做个能支持10W用户同时在线的网站,而这10W用户同时在线的时候,QPS理论上是有可能达到10W的。所以我们做服务器架构的时候要根据最大支持QPS的值来考虑。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐