-
什么是高并发
-
高并发系统有哪些关键指标
高并发系统介绍
本文主要讲解高并发系统的概念,在实际开发过程中为什么要使用高并发系统,相比于传统系统,能带来怎样的改变。
1.1 高并发介绍
高并发(Hign Concurrency),通常是指通过设计保证系统能够同时处理很多请求。
(即在同一个时间点,有很多的请求同时访问同一个接口)
高并发意味着短时间内有大流量进入系统,需要运用技术手段来抵抗这种大流量的冲击。
场景:比如流行的淘宝“双十一”、京东“618”、热门车次车票开售以及各种电商秒杀抢购活动的场景等。
1.2 高并发系统关键指标介绍
-
响应时间(Response Time):从 第一次 发出请求 到收到系统完整相应数据所需的时间。【响应时间是反映系统性能的重要指标,直接反映了系统响应的快慢】。
-
吞吐量(Throughput):单位时间内,系统所处理的用户请求数。
-
每秒请求数(QPS):服务器在 一秒 内处理了多少个请求,主要用来表示【读】请求。
-
每秒事务数(TPS):服务器 每秒 处理的事务数。
-
访问量(PV:Page View):页面浏览量。用户每次对网站中的1个网页访问1次均被记录1次。用户对同一个页面的多次访问被累计记录。(PV是评价网站流量最常用的指标之一)。
-
独立访客(UV:Unique Visitor):访问某个站点 或 点击某个链接的不同IP地址数。
-
网络流量:并发情况的一个重要指标,包含流入/流出流量。
关键指标详细介绍:
不同角度分析吞吐量:
TPS包括以下3个过程:
-
响应时间反映了系统快慢,从以下两个角度出发:
-
从用户角度出发,响应时间决定用户的体验感,即响应时间越长,用户体验越差,造成用户流失;反之可提高用户留存率。
-
从系统本身出发,响应时间决定系统的性能问题,即响应时间越短,表示系统性能越高,可更好处理业务;反之系统性能越差,甚至可能丢失相关请求/系统不可用,影响公司业务。
-
-
吞吐量反映了系统的负载能力,能够通过吞吐量来分析系统的性能瓶颈
-
从业务角度看,吞吐量可以用“请求数/秒”、“人数/天” 或 “处理业务数/小时”等单位来衡量
-
从网络角度看,吞吐量可以用“字节数/秒”来衡量
一般来说,在没有遇到性能瓶颈时,吞吐量 与 虚拟用户数之间存在一定联系,可以采用以下公式来计算吞吐量:
F = VU × R / T
其中,F表示吞吐量,VU表示虚拟用户个数,R表示每个虚拟用户发出的请求数,T表示性能测试所用的时间。
-
-
每秒请求数(QPS)反映系统在流量高峰时性能指标,通过分析QPS,可以分析出所需机器数量,帮助系统更好进行掌控。
一般来说,绝大部分系统在白天的请求量比较大,且依据二八原则,80%的流量是在20%的时间段内产生的。
场景:
假设每天有5 000 000 个请求,预估QPS = (5 000 000 × 0.8)/(12 × 60 × 60 × 0.2)= 462。所以当前系统每天平均QPS为462,一般来说,为了保险起见,再预留20%左右也是可以的。一般还需要计算当天最高QPS,这样对系统的掌控力度会更强。
系统最高QPS,可以通过同平均QPS的倍数计算出来。例如,分析业务得到最高QPS大概是平均QPS的2倍,则当前系统峰值QPS ≈ 924 左右。
在预估出QPS后,用【峰值QPS / 单台机器最高可承受的QPS】,就能计算出需要部署多少台服务器。即:
机器数 = 峰值QPS / 单台机器最高可承受的QPS
(单台最高可承受的QPS可以通过压测来得出)
假设单台机器 通过压力测试 得出最高可承受的QPS为100,那么所需要的机器数量为:924 / 100 ≈ 10台
-
每秒事务数(TPS)反映整个系统的交互性能指标,一个事务包括“客户机向服务器发送请求 + 服务器响应”的过程,所以当系统TPS下降时,也表示整个交互过程也会受到影响。
-
客户端请求服务端。
-
在服务端内部进行业务逻辑处理。
-
服务端响应客户端。
-
-
访问量(PV)反映网站是否处于活跃的流量状态中,当访问量多了,某种程度上也可以反映出系统业务方向是符合当前社会行情的。
-
独立访客(UV)反映系统每天真实访问数量,通过UV指标,可以反映出系统每天平均的用户数,后续也可以通过用户数进行专项分析及营销。
-
网络流量,系统因受限于宽带,所以网络流量(也简称流量)是并发情况的一个重要指标,主要涉及以下两个方面:
-
流入流量:从外部访问服务器所消耗的流量。
-
流出流量:服务器对外响应的流量。
-
此篇文章是高并发系列讲解的第一章,主要讲解高并发系统中的关键指标及介绍,让大家在后续文章中,这些关键指标会贯穿文章中。因此会先把基础参数内容定义清楚,大家在后续过程中也可以更好理解。
如果喜欢文章的话,可以关注及分享,让大家一起学习。