并发同时访问_在开发过程中,怎样的级别才算是高并发

本文探讨了互联网时代的高并发概念,通常指并发访问。定义了QPS(每秒请求/事务数量)、吞吐量和响应时间等性能指标,并通过实例分析了提高并发能力和系统性能的策略,包括增加机器、读写分离、负载均衡以及优化单机性能等方法。
摘要由CSDN通过智能技术生成

我们说的高并发是什么?上面的定义明显不是我们通常所言的并发,在互联网时代,所讲的并发、高并发,通常是指并发访问。也就是在某个时间点,有多少个访问同时到来。

我看到有人给高并发下了类似的定义:

高并发通常是指我们提供的系统服务能够同时并行处理很多请求。

来看看这个定义,这里首先把并发给混淆到并行了。

然后定义又说很多请求?什么叫很多请求?做为中国人,这个词让我想象力一发不可收拾......好了,拉回来,继续本文。

那么从上面的分析,可以看出来高并发在网络上业界也没有明确的定义。但根据我搜索情况,一般都是pv在千万级别以上的公司才会涉及到这个概念。所以我得出一个自定义概念:如果某个系统的日pv在千万级别以上,他就可能是一个高并发的系统。

为什么说是可能?那是因为有的公司完全不走技术路线,全靠机器堆,这不在我们的讨论范围。

高并发的问题,我们具体该关心什么?讲真话,高并发是个比较抽象的概念。很难有一个统一的可衡量的标准。哪么有一些其它维度的标准指标来衡量系统的性能吗?搬出以前计算机课程里边的一些指标来跟大家聊聊。

先声明几个概念,别打瞌睡。

  • QPS(TPS):每秒钟 request/事务 数量,在互联网领域,指每秒响应请求数(指http请求);
  • 吞吐量:单位时间内处理的请求数量(通常由QPS与并发数决定);
  • 响应时间:系统对一个请求做出响应的平均时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间(我认为这里应该仅包含处理时间,网络传输时间忽略)。

这里一定要注意呃,QPS ≠ 并发数

并发是指,某个时刻有多少个访问同时到来。QPS是指秒钟响应的请求数量。那么这里就肯容易推算出一个公式:

QPS = 并发数 / 平均响应时间

后面我们的分析都是围绕这个公示来进行展开,没明白的再回味一下。

现在我们来假设一个场景:既然QPS是每秒钟处理的http请求数量。那么1s = 1000ms。假设我们当前一个http请求服务器处理完成需要100ms(即那么平均响应时间 = 100ms)。那么它1s钟可以处理10个请求。也就是说qps = 10。推算出并发数 = 10

常常我们被问到高并发的问题,其实从某种程度上来说是怎么提高现有程序的性能。现在我们基于上面的假设,来进行分析。假设现在有个系统性能上就是我们上面的假设,它每天有 300万pv,运行在单机上(当然经常宕机),按照上面的系统性能数据,给出优化解决方案。

提高并发能力

通过上面的分析,要提升并发能力,我们就需要提升我们的qps(其实这里并不完全正确,为了说明问题,我们先放弃一部分正确性)

最快速解决方案,就是增加机器。我们根据以上情况来实际计算一下。

  • 访问量:200w pv
  • QPS:10

根据日常经验,80% 的访问量集中在 20%的时间,算一下这 200w pv实际需要机器达到多少qps才能满足。

qps = (200w * 0.8) / (24 * 3600 * 0.3)

qps = 61.7

实际上如果在单机上,要求我们每秒钟处理请求必须达到 61.7 以上才行,而实际上我们当前系统的qps是 10。那么怎么解决?

方案一:上机器个人的能力是有限的,团队的力量是无穷的。既然一台机器搞不定,我们就多上几台机器。这就涉及到db主从、读写分离、负载均衡等技术。

它的原理就是分流,把以前集中的压力分散开来。改方案见效快,灵活,实践起来也更快。

方案二:增加单机性能单机到底性能能够增加到一个什么程度,这取决于你的机器配置,也取决于你的服务到底有多复杂。

ps: 写到这里突然有点能够理解为什网上对高并发都是讲很多请求,没有具体数据了,因为这真的只能针对业务来讲,100个并发对静态网页来说根本没有的事儿,但是对于某些密集计算型的估计...

那么常见的单机如何提升性能?比如:增加不常变化数据的缓存,开启php的opcache,优化代码(如:n+1问题、多重嵌套循环、深层递归等),db表优化等等。由于这些每一个点拿出来都够写一本书了。就不继续下去。

phper在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家 ,需要请戳这里

47a3ed4bf421c3c9d0fcea3b81102ac6.png

f54b24bcbf144de0fd35b3a5788e3d4d.png

538a1a9077bae19a31b22a9e04586901.png

最后,祝所有大家在面试中过关斩将,拿到心仪offer。如果想与一群3-8年资深开发者一起交流学习的话,需要

请戳这里​shimo.im
8f4575fea0b0930ec6c5d9467ec3e100.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值