Nginx是一款轻量级的HTTP服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的IO性能,时常用于服务端的反向代理和负载均衡。
Nginx的优点
支持海量高并发:采用IO多路复用epoll。官方测试Nginx能够支持5万并发链接,实际生产环境中可以支撑2-4万并发连接数。
内存消耗少:在主流的服务器中Nginx目前是内存消耗最小的了,比如我们用Nginx+PHP,在3万并发链接下,开启10个Nginx进程消耗150M内存。
免费使用可以商业化:Nginx为开源软件,采用的是2-clause BSD-like协议,可以免费使用,并且可以用于商业。
配置文件简单:网络和程序配置通俗易懂,即使非专业运维也能看懂。
一、IO多路复用epoll
IO多路复用:多个描述符的I/O操作都能在一个线程内并发交替地顺序完成,这就叫I/O多路复用,这里的“复用”指的是复用同一个线程。
IO多路复用的实现方式有:select、poll、epoll
select:
缺点:
1)能够监视文件描述符的数量存在最大限制
2)线性描述效率低下
epoll:
1)每当FD就绪,采用系统的回调函数之间将FD放入,效率更高。
2)最大连接无限制
二、轻量级
三、CPU亲和
是一种把CPU核心和Nginx工作进程绑定方式,把每个worker进程固定在一个cpu上执行,减少切换cpu的cache miss,获得更好的性能。
四、sendfile
网友评论