欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

网站最大并发数以及服务器配置预估

程序员文章站 2022-05-04 08:03:41
...

一.评测网站常用的一些术语:

以www.qq.com为例子,我们可以在站长之家输入www.qq.com获得结果:
网站最大并发数以及服务器配置预估
日均ip:每天有多少个ip访问qq,我们可以看到qq是接近六千万,然后用的人远不止这些,因为如果在一个局域网里面访问使用qq的话,局域网最终有几个出个ip,就是多少个ip。

日均pv:我们一个人用一个ip去访问qq,然后在里面点了几个页面,这个就是PV。也就是说pv/ip就是每个ip访问的页面数量,通常这个数越大就说明你的网站越受欢迎,而不是点一下就走了。

还有几个术语:
UV:这个是多少个用户,前面说ip是出口ip,那么有多少人就是这个UV了。
DAU:这个和UV有些类似,但是这个一般用在移动端APP中,日活跃用户数。
MAU:移动端APP月活跃用户数。

二.网站最大并发数

并发数

并发用户数量,有两种常见的错误观点。一种错误观点是把并发用户数量理解为使用系统的全部用户的数量,理由是这些用户可能同时使用系统;还有一种比较接近正确的观点是把用户在线数量理解为并发用户数量。实际上,在线用户不一定会和其他用户发生并发,例如正在浏览网页的用户,对服务器是没有任何影响的。但是,用户在线数量是统计并发用户数量的主要依据之一。

并发主要是针对服务器而言,是否并发的关键是看用户操作是否对服务器产生了影响。因此,并发用户数量的正确理解为:在同一时刻与服务器进行了交互的在线用户数量。这些用户的最大特征是和服务器产生了交互,这种交互既可以是单向的传输数据,也可以是双向的传送数据。

测试并发量:

使用apache的ab命令,没有的话先安装一下httpd(安装只会占磁盘空间,不启动对内存不会有什么影响):

yum install -y httpd

使用ab命令测试www.qq.com,你也可以测试自己的网站,比如说我自己的网站127.0.0.1。

# -c指定并发数,-n指定请求数量
ab -c 100 -n 1000 http://127.0.0.1/index.html

查看结果:
网站最大并发数以及服务器配置预估
上面可以看出我自己的1核2G内存的云服务器是1万1的并发量。我的web就只有一个静态页面,没有动态请求,理论上nginx的静态页面支持3万的高并发。

然而这并不能说明什么,生产环境中不可能没有动态请求,还有和数据库的交互以及带宽。犹如一个银行里面,大厅的人数多少还不能说明处理能力的快慢。

吞吐量

与高并发相关的一个参数叫做吞吐量,这个就想是银行柜台窗口。吞吐量的多少决定了真正并发数量的多少。哪怕我服务器写的并发很高,也会被限制,有时候并发太高了,吞吐量反而会变低,因为太“拥挤”了。按理来说,cpu核数多少就是多少个窗口,但是呢,吞吐量不是这样的,这样太浪费cpu资源了。假如银行柜台办业务中途需要填个表,现实中可能是等你填完,然后继续。但是cpu不是,在一个请求处理等待返回结果的时候,cpu已经开始下一个了,等返回了值再处理一下。这样下来,每秒钟能处理多少请求呢,就是吞吐量。下面说一下服务器预估,结合起来说并发和吞吐量。

三.服务器配置预估

例如:8核至强E5,8g内存。
按照经验来说,跑纯php页面,跑300(吞吐量)已经很优秀了,150左右响应时间已经明显变慢了。
这里说的并发包括静态和动态,一般来说一个网页静态内容占80%左右,
还有网站的80%的pv是在20%(24小时算)的时间内完成的
计算它一天的请求数的话(吞吐量150算):
240.23600*150/0.8=340万
请注意是请求数,一个html页面包括各种图片,js,css资源,这些都是请求。
一个网页有动态资源和静态资源,如果按2:8来算的话,
pv=请求书/5=68万。
上面的一些比例可以根据自己的服务器换算。

相关标签: 高并发