高并发的量级计算

我们总说高并发,那么高并发的量级如何计算呢?

假设系统的用户数达到了 500 万,这个数量听起来也不算小,那我们以这个为基数来计算一下并发量能达到多少。

# 并发量估算方法

假设日活的用户数是百分之十,那么 500 万的 10% 就是 50 万,每天活跃的时长按 4 小时来算,高峰活跃数占比用二八法则,假设活跃用户数占 80%,那么 50 万的 80% 就是 40 万。

高峰期每个用户查询请求数按 20 次计算,那么请求数就是500 次/秒。假设每一次查询数据库请求 3 次,点击是 60 次,那么数据库的请求数 1500 次/秒。这是最通用的算法,我们暂时不考虑突发热点之类的并发量。

一般来说,数据库读写并发不要超过 3000,所以这个数据量算不上高并发,但是这个时候要开始着手准备扩容了。

说到请求量,顺便说一下高并发的几个重要指标。

  • TPS,Transactions Per Second,每秒处理事务的数目
  • QPS,Queries Per Second,一台服务器每秒能够处理完的查询次数
  • 响应时间,一个请求从开始到最后收到响应数据所花费的总体时间
  • 吞吐量,Throughput,单位时间内处理请求的数量
  • 并发量,系统可以同时承载的正常使用系统功能的用户数量
  • 并发用户数,系统可以同时承载的正常使用系统功能的用户的数量

# TPS

TPS 是每秒处理事务的数目。

# QPS

QPS 是一台服器每秒能够处理完的查询次数,是指对一个特定的查询服器在规定时间内所处理流量多少的衡量标准。上面所说的请求数,如果是一台特定的服务器完成的,那我们就可以说这台服务器的 QPS 是 500 次每秒。那么,QPS 只是简单的查询统计,能够用来衡量单个服务器查询的性能指标,显然不能描述增删改查等操作。所以不够全面,不建议用 QPS 来描述系统整体的性能。

那么 TPS 和 QPS 的关系是什么样的呢? 假设一个事务中发生 3 次查询,那么 QPS 就是 3,TPS 就是 1。

# 响应时间

响应时间 t = t1 +t2 +t3

响应时间是系统对请求作出响应的时间,是指执行一个请求从开始到最后收到响应数据所花费的总体时间。比如说向服务器 A 发送了一个请求,时间为 t1; 服务器 A 处理请求的时间记为 t2,服务器 A 返回信息的时间即为 t3 ,那么响应时间就为 t1+t2+t3 的时间总和

# 吞吐量

吞吐量是单位时间内处理请求的数量,对于单用户系统,响应时间可以很好的度量系统的性能。对于高并发的系统,通常用吞吐量作为性能指标

# 并发量

并发量是指系统可以同时承载正常使用系统功能的用户数量。比如说某地铁站有十个闸机,可以允许十个人同时进站,那么并发量就记为 10。

# 并发用户数

并发用户数指的是系统在某个特定时间段同时活跃的用户数量,通常用来衡量系统的用户规模和负载情况。比如说一列地铁车厢只能容纳 100 人,那么并发用户数就记为 100。

# 其他

以下指标用于运营分析。

  • PV,page view,页面浏览量,用户对同一页面的多次刷新,访问量累计。
  • UV,Unique visitor,独立访客,通过客户端的 cookies 记录,即同一页面,客户端多次点击只记为一次,访问量不累计。
  • IP,Internet protocol,指 ip 的访问量,即同一页面,客户端使用同一 ip 访问多次只记作一次,访问量不累计。
使用 Hugo 构建
主题 StackJimmy 设计