大家心里仔细想想,当你们听到高并发网站时,心里对这个网站是个什么观点?

首先想到的是淘宝吗?带着问题,我们一起思考技能~

写这个话题是由于我对搜索引擎给我的答案很不满意,然后决定把思考的一些东西分享出来,希望可以大家彼此谈论下。

什么是php并发量到底什么级别才算是高并发 Webpack

我们常常在口试的时候,被问到有没有高并发的履历?先不说哪些考高并发的装逼公司。
我思考的是什么才算是高并发?你一天几个pv肯定高不了。
首先在网上查找一下,并未找到明确的标准定义。
那么什么是并发呢?

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

摘自百度百科

我们说的高并发是什么?

上面的定义明显不是我们常日所言的并发,在互联网时期,所讲的并发、高并发,常日是指并发访问。
也便是在某个韶光点,有多少个访问同时到来。

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

高并发常日是指我们供应的系统做事能够同时并行处理很多要求。

来看看这个定义,这里首先把并发给稠浊到并行了。
关于并发并行的差异看这里我就不多说,连续磋商并发。

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

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

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

高并发的问题,我们详细该关心什么?

讲真话,高并发是个比较抽象的观点。
很难有一个统一的可衡量的标准。
哪么有一些其它维度的标准指标来衡量系统的性能吗?

搬出以前打算机课程里边的一些指标来跟大家聊聊。

先声明几个观点,别打瞌睡儿。

1.QPS(TPS):每秒钟 request/事务 数量,在互联网领域,指每秒相应要求数(指http要求);

2.吞吐量:单位韶光内处理的要求数量(常日由QPS与并发数决定);

3.相应韶光:系统对一个要求做出相应的均匀韶光。
例如系统处理一个HTTP要求须要200ms,这个200ms便是系统的相应韶光(我认为这里该当仅包含处理韶光,网络传输韶光忽略)。

这里一定要把稳呃,QPS ≠ 并发数

并发是指,某个时候有多少个访问同时到来。
QPS是指秒钟相应的要求数量。
那么这里就肯随意马虎推算出一个公式:

QPS = 并发数 / 均匀相应韶光

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

现在我们来假设一个场景:既然QPS是每秒钟处理的http要求数量。
那么1s = 1000ms。
假设我们当前一个http要求做事器处理完成须要100ms(即那么 均匀相应韶光 = 100ms )。
那么它1s钟可以处理10个要求。
也便是说 qps = 10。
推算出 并发数 = 10

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

提高并发能力

通过上面的剖析,要提升并发能力,我们就须要提升我们的qps(实在这里并不完备精确,为相识释问题,我们先放弃一部分精确性

最快速办理方案,便是增加机器。
我们根据以上情形来实际打算一下。

1.访问量:200w pv

2.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表优化等等。
由于这些每一个点拿出来都够写一本书了。
咋就不连续下去。

总结

由于笔者自己也是没有实际经历过kw级别pv场景,很多东西讲的不一定对,本文也是理清自己的一点思路。
希望能够与更多朋友进行谈论。

也希望本文能够办理你的一点迷惑,让我们能够从高大上的观点落实到实际问题中去。

参考资料

1.http://h5ip.cn/ifP8

2.http://www.ha97.com/5095.html