以普通的单线服务器来举例子,处理器(cpu)并不是在同一时刻处理多个进程而是串行处理的(可以精确到千分之一秒)。处理器往往是把一秒分成N份,然后排序,分别用N分之1秒的第1秒钟处理第一个进程,以此类推。也就说明处理器的能力不是在于一秒钟内提交多少申请,而是把处理工作的时间分成了多少份。
人们系统默认的进程个数是256个,如果处理器把1秒钟分成100份,那么第100-200个进程就要等到第二秒才能执行。网卡在得到请求信息以后会将请求信息送入内存排好队,所以内存大点的话会感觉支持在线的人数多一些,然而实质上是与处理器划分时间片段的能力有关的。处理器性能强的话能多分出些时间片段,处理速度也就越快。
这里说的一个进程并不是指的一个请求,一个进程通常情况下可以包含100个请求,按照这样算的话,处理器可以在一秒内处理100*100=10000个请求。通常大部分用户不可能在一分钟内只提交一个请求,就是一分钟内只点击一个链接。
除此之外,宽带的大小是支持同时在线人数的关键因素之一,服务器如果最大宽带是5M的话,相应的最高传输速度就应该是5M*1024/8=640K,相应的一分钟流量就应该是约等于640K*60=38400K,如果每个用户一分钟内始终占用10K的流量,这样的话一分钟内支持这样占用10K流量的访问客户为3840人(图片和视频类网站每个用户占用的流量会大得多)。
但是并不能保证每个用户在一分钟之内之点击一个到该站的链接,假如每个用户在一分钟点击两个到该站的链接,每个链接在占用10K的情况下,支持在线的人数就会下降到2000人以下。
结合上面的情况来看,一台中低端的服务器一般支持的最高人数也就2000人左右,当然这个网站得是普通站点,如果是图片、视频和资源下载类的站点的话最高在线人数将达不到2000人。
其实有2000人访问站点的话,运营者也赚了不少钱了,也有资金去升级服务器了,比如增加内存、处理器核心数和宽带。虚拟机可能是有在线人数控制的,有可能同时支持100人同时在线,也有可能支持200人同时在线,如果超过了限制人数,网站就会打不开,并出现“目前访问人数过多”的错误提示信息。
在线人数可以称作IS连接数或并发连接数,当一个网页被访问的时候,服务器就会和访问者建立起连接,每个连接代表一个并发。当网页含有许多图片时,图片不会是一个一个的显示,服务器会产生很多个连接同时发送文字和图片,用以提高页面加载速度。页面中的图片的越多,服务器的并发连接数量也就会越多,当页面关闭后这些连接也就随之关闭,接着和其他访问者建立连接。
每次并发时间很短,只有几毫秒到几十毫秒。成都SEO 猫鼬博客以100M的空间和50人在线举例,通常有以下几种情况:
1.访问者点击下载文件,下载完成后正常断开,这些连接很短,支持50人的网站可以同时承受50个点下载。
2.访问者打开网站页面,只停留在网页没有做任何点击,也就是没有向服务器发出任何请求,那么访问者打开一个页面的20分钟内也视作一个在线数。这样的话50人的网站,20分钟内可以接受不同的访问者打开50个页面。
3.上一种情况下的用户继续打开此网站的其他页面,那么在线人数就要按照用户的最后一次点击(最后一次向服务器发送请求)以后的20分钟计算。在这20分钟以内无论用户怎么点击页面,就算是新建窗口打开页面也都还是一个在线量。
4.在页面存在框架(iframe)时,情况就会变得不一样了,就会按照每多一个框架就会多一倍的在线数量来计算,因为这相当于访问者同时向服务器发送了多个请求。
5.当用户打开页面后正常关闭了浏览器,在线人数也会立即被清除。
建议大家在选择服务器或空间的时候,先预估下自己站点访问人数是否比较多,空间的在线人数是否足够用。如果访问人数超过了服务器或空间所支持的最多人数,就会经常出现“目前访问人数过多”的错误提示信息,搜索引擎也就会对经常出错的网站降权处理,严重的甚至除名。