第三讲:Nginx出现的历史背景
第一:互联网数据的快速增长,全球化和物联网的快速发展,对我们的硬件性能提出了很高的要求;
第二:摩尔定律 之前我的服务跑在1GHz的CPU上,当更新到2GHz的CPU时候,我可以预测到我的服务性能能够提升两倍;但是到了本世纪初,摩尔定律在单核CPU的频变上已经失效了,CPU开始向着多核发展,这个时候,当你的服务器是跑在8核的CPU上的,过段时间换到16核的CPU 的时候,服务的性能不会有一倍的提升,那么这些性能都损耗在哪里尼?通常来说是在操作系统和大量的软件没有做好服务与多核架构的准备;比如说Apache
第三:Apache是低效的,因为它的架构模型里,一个进程同一时间,只会处理一个连接一个请求,只有在这个请求处理完以后,才会处理下一个请求;它实际上在操作系统的一个进程间切换的特性;因为操作系统微观上只有有限的CPU;但是操作系统被设计为同时服务于数百甚至上千 个进程,而Apache一个进程只能服务于一个连接,这样的设计模式,当Apache需要面对几十万甚至上百万的连接的时候,它没有办法去开几百万的进程;而进程间切换的成本代价又太高了;当我们并发的连接数太多,这种无谓的进程间的切换引发的性能消耗也就越大;而Nginx是 专门为了这样的应用场景而生的;Nginx可以处理上百万甚至上千万的并发连接;