为什么高并发性很重要?

如今,互联网如此广泛和无处不在,很难想象它不是十年前我们所知道的那样。从简单的HTML生成可点击文本,基于NCSA,然后是Apache Web服务器,到全球超过20亿用户使用的永远在线的通信媒体,它已经有了很大的发展。随着永久连接的PC,移动设备和最近的平板电脑的激增,互联网领域正在迅速变化,整个经济已经成为数字连线。在线服务变得更加精细,明显偏向即时可用的实时信息和娱乐。运行在线业务的安全方面也发生了重大变化。

因此,网站现在比以前复杂得多,
网站架构师面临的最大挑战之一就是并发。自Web服务开始以来,并发水平一直在不断增长。一个流行的网站服务数十万甚至数百万同时用户并不罕见。十年前,并发的主要原因是缓慢的客户端 - 具有ADSL或拨号连接的用户。如今,并发性是由移动客户端和较新的应用程序体系结构的组合引起的,这些体系结构通常基于维护持久连接,该连接允许客户端使用新闻,推文,朋友订阅源等进行更新。另一个有助于提高并发性的重要因素是现代浏览器的行为改变,它可以打开四到六个同时连接到网站的连接,以提高页面加载速度。

为了说明慢客户端的问题,想象一个简单的基于Apache的Web服务器,它产生一个相对较短的100 KB响应 - 一个带有文本或图像的网页。生成或检索此页面只需几分之一秒,但需要10秒才能将其传输到带宽为80 kbps(10 KB / s)的客户端。从本质上讲,Web服务器会相对快速地提取100 KB的内容,然后在释放连接之前,它将忙于将内容缓慢地发送到客户端10秒钟。现在假设您有1,000个同时连接的客户,他们请求了类似的内容。如果每个客户端仅分配1 MB的额外内存,则会产生1000 MB(约1 GB)的额外内存,专门用于为1000个客户端提供100 KB的内容。

事实上,基于Apache的典型Web服务器通常为每个连接分配超过1 MB的额外内存,令人遗憾的是,几十kbps仍然是移动通信的有效速度。虽然在某种程度上通过增加操作系统内核套接字缓冲区的大小来改善向慢速客户端发送内容的情况,但这不是解决该问题的一般方法,并且可能具有不良副作用。
对于持久连接,处理并发性的问题更加明显,因为为了避免与建立新HTTP连接相关联的延迟,客户端将保持连接,并且对于每个连接的客户端,Web服务器分配了一定量的内存。
因此,为了处理与增长的受众相关的增加的工作量以及因此更高的并发水平 - 并且能够持续这样做 - 网站应该基于许多非常有效的构建块。虽然硬件(CPU,内存,磁盘),网络容量,应用程序和数据存储架构等方程式的其他部分显然很重要,但是在Web服务器软件中,客户端连接被接受和处理。因此,Web服务器应该能够随着每秒同时连接和请求数量的增加而非线性地扩展。

你可能感兴趣的:(Web服务器)