0%

如何衡量一个系统是否是高并发

如何判断一个系统是否是高并发

高并发是相对的,不同系统的高并发界定也不同,但是通常在实际情况下,QPS在一定范围内时被称为高并发。一般来说,当系统的QPS达到几百或几千时,就可以被认为是高并发了。

当然,QPS高低的标准还受多种因素的影响,例如服务器处理能力、请求响应时间、服务器内存及磁盘配置等等。对于一些对时效性要求较高的系统,即使QPS比较低,也有可能被认为是高并发的。因此,高并发应该根据具体的应用来界定。

举些例子

  1. 高流量网站如新闻网站、搜索引擎:QPS达到几千到几万,像Google及百度之类的主流搜索引擎要达到百万级的QPS。
  2. 电商网站、在线支付系统:QPS达到几百到几千,像淘宝京东在大促期间要达到百万级的QPS。
  3. 即时通讯应用(如微信、QQ):QPS达到几十到几百,像微信QQ之类的主流通讯应用用了消息队列,但QPS应该也需要达到百万级
  4. 大型多人在线游戏:QPS达到几千到几万

一些指标是如何计算的

例1

假设一个电商系统平均每秒接收400个请求,80%的请求能在1秒内得到处理,但另外20%会在2秒或以上才能完成处理。在业务高峰期,该系统的峰值并发用户数达到5,000。系统平均一天处理200,000单。

通过上述指标,可以评估系统的高并发能力:

  1. 峰值并发用户数:该电商系统的峰值并发用户数为5,000,意味着在系统高峰期内该系统能够同时处理的用户请求数量上限为5,000。
  2. 平均响应时间:80% × 1秒 + 20% × 2秒 = 1.2秒,即该系统在1.2秒内能够处理掉大部分请求。
  3. QPS:400 / 1.2秒 = 334/秒,即该系统的QPS为334。
  4. 峰值TPS:5000/ 1秒 = 5000/秒,即该系统业务高峰期的峰值TPS为5000

例2

假设一个网站的PV是300万,且80%的访问集中在20%的时间里,那么:

  1. 如果是单台机器,那么这台机器的QPS至少要多少?

    答:峰值时间每秒请求量为:( 3000000 * 0.8 ) / (86400秒 * 0.2 ) = 139/s,那么如果是单台机器,那么其QPS至少要139。

  2. 如果一台机器的QPS是58,需要几台机器来支持?

    答:139/58 = 3

相关指标的定义

QPS(Queries-per-second)

  • QPS代表每秒查询次数(Queries Per Second),是用于测量系统或数据库处理传入查询的速率的度量单位。 QPS越高,系统处理和响应查询的速度就越快。 QPS通常用作数据库系统、服务器和其他基础设施组件的性能指标。
  • QPS = 总请求数 / 处理时间,其中,总请求数表示在给定时间范围内,系统接收到的所有请求总数,处理时间表示系统处理这些请求所花费的总时间,单位一般为秒。
  • 例如,系统在60秒内接收了6000个请求,处理这些请求共花费了120秒,那么系统的QPS可以计算如下:QPS = 6000 / 120 = 50,即系统的QPS为每秒50个请求。

TPS(Transactions-per-second)

  • TPS代表每秒事务数(Transactions Per Second),是用于测量系统或应用程序处理传入事务的速率的度量单位。一个事务意味着一个完整的操作,可以由多个查询和操作组成。TPS通常用于评估数据库系统、Web应用程序、负载均衡器和网络服务器等系统性能。具有高TPS的系统可以在同等条件下处理更多的事务,这意味着它们更有效,更高效。
  • TPS = 总事务数 / 处理时间,其中,“总事务数”表示在一定时间区间内处理的事务总数,“处理时间”表示处理这些事务所用的总时间。
  • 例如,如果一个系统在5秒钟内处理了200个事务,则其TPS可以计算为:TPS = 200 / 5 = 40,即该系统的TPS为40个每秒。

Concurrency(并发数)

  • 并发数(Concurrency)是指在同一时间内处于活动状态的用户数量、请求数量或其他某种类型的活动数量,是观察系统性能的一个重要指标。通常指在一定时间内,有多少个用户或进程同时向系统发送请求或在系统中执行任务。当并发数达到一定程度时,系统的性能将受到影响,可能会导致系统响应时间变慢或出现错误。因此,在设计和测试系统时,需要对并发数进行充分考虑,以确保系统能够处理预期的负载和访问量。
  • 计算并发数通常需要监测系统的活动并记录每个活动的开始时间和结束时间。然后,在给定的时间间隔内,可以通过程序或手动方法来统计活动的数量。
  • 例如,如果在一段10秒钟的时间内,有500个用户同时访问一个网站,那么每秒的平均并发数为50(500除以10)。

PV(Page view)

  • 即网站或应用程序上的某个页面被用户访问的次数。这是衡量一个网站或应用程序流量和受欢迎程度的一种指标。当一个用户访问一个页面多次,每次都会被计算为一个独立的PV。

响应时间

指系统处理请求所需的时间,一般情况下响应时间越短,系统性能越好。

吞吐量

指系统在一定时间内可以处理的请求数量,通常使用QPS、TPS等来表示。

错误率

指系统在处理高并发请求时,发生错误的比率。当错误率高时,需要考虑系统是否需要优化或进行扩容。

平均负载

指系统在某一时间段内的负荷程度,可以用服务器的CPU、内存、磁盘等监控指标来表示。

并发连接数

指系统能同时处理的连接数。在高并发场景中,如果并发连接数过高,可能导致系统性能下降。

网络流量

指系统在处理请求时所消耗的网络带宽,一般情况下需要考虑系统的带宽限制。