nginx 网络模型,cpu亲和等优点

nginx优点
1.IO多路复用epoll
IO多路复用:多个描述符的I/O操作都能在一个线程内并发交替地顺序完成,这里的"复用" 指的是复用同一个线程
epoll
IO多路复用的实现方式 select,poll,epoll

select缺点
1)能够监视文件描述符的数量存在最大限制 (1024)
2)线性扫描效率低下

epoll模型
2.6内核之后
每当FD就绪,采用系统的回调函数直接将fd放入,效率更高
无最大连接数的限制

2.轻量级
功能模块少
代码模块化
3.CPU亲和(affinity)
为什么需要cpu亲和

cpu亲和是一种把cpu核心和Nginx工作进程绑定方式,把每个worker进程固定在一个cpu上执行,减少切换cpu的cahce miss(cpu高速缓存),获得更好的性能
4.nginx的sendfile
传统的server服务

使用nginx sendfile on


请求一个文件要经过操作系统的内核空间->用户空间最终到达socket,socket再response给用户
linux2.2以后的零拷贝
只通过内核空间到socket,不通过用户空间的复杂逻辑运算

HTTP协议版本

连接关系

1.0

TCP不能复用

1.1

顺序性TCP复用

2.0

多路复用TCP复用

原文地址:https://www.cnblogs.com/HKUI/p/7638502.html