100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 到底什么级别才算是高并发?

到底什么级别才算是高并发?

时间:2023-12-14 13:26:18

相关推荐

到底什么级别才算是高并发?

面试的时候,最常问到的是:有没有高并发的经验?

到底什么是高并发?在弄清这个问题之前,我们先弄清楚什么是并发。

一、并发定义

在操作系统中,并发是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。

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

二、高并发是什么?2.1 定义

一般认为,如果某个系统的日pv在千万级别以上,他就可能是一个高并发的系统。

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

2.2 高并发的问题,我们具体该关心什么?

先声明几个概念:

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

一定要注意哦,QPS ≠ 并发数

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

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

2.3 场景假设

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

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

三、提高并发能力

通过上面的分析,要提升并发能力,我们就需要提升我们的QPS(其实这里并不完全正确),最快速解决方案,就是增加机器。我们根据以上场景来实际计算一下。

3.1QPS的值

访问量:200w pvQPS:10

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

QPS = (200w * 0.8)/(24 * 3600 * 0.3)QPS = 61.7

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

3.2 方案一:上机器

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

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

3.3 方案二:增加单机性能

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

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

那么常见的单机如何提升性能?比如:增加不常变化数据的缓存、优化数据库(比如索引优化、SQL优化、读写分离等等)、反向代理、MQ异步消息等等。

本文只是单纯的介绍高并发场景, 并不提供解决方案,所以这里聊到比较浅。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。