章节目录
- 轻量级
- CPU亲和
- 超强的静态文件处理能力
轻量级
功能模块少
源代码只保留与http 及核心功能代码,出于性能考虑,不像httpd 有那么丰富的插件。
代码模块化
易读,可进行二次改进。
CPU亲和
8核心 16核心,多核密集计算、多线程,接入层中间件
双cpu、每个cpu有四个核心
不同worker 绑定不同核心 均匀分配,多个核心自动切换的模式,会带来核心切换资源消耗。
什么是CPU亲和?
把CPU核心和NGINX 工作进程绑定的方式,把每个worker进程固定在一个cpu
上执行,减少切换cpu的cache miss,获得更好的性能。
超强的静态文件处理能力-sendfile
内核空间-用户空间数据拷贝模式
可以看到上图为nginx应用程序进程配合内核空间返回给用户请求静态文件的response过程
这种响应模式,需要进行 内核空间 与 应用进程 空间之间数据的拷贝,比较消耗性能。
内核空间零拷贝模式
直接通过内核空间进行数据的拷贝,sendfile利用带了linux在2.2 零拷贝传递模式
nginx对静态文件的处理能力超强的原因就是因为sendfile使用了内核空间零拷贝数据传递模式。