专题导读
1.MySQL 专题基本上已经放送完了,前一个专题的 数据库内容 主要与开
发人员相关。关于运维等、架构方面的知识个人没有过多的积累。
2.紧接MySQL 专题, 接下来主要放送 Nginx 接入层中间件 相关的知识。
3.本专题主要对 Nginx 特性、Nginx 负载均衡、反向代理原理与实操、Nginx 动静分离配置、静态缓存配置、I/O 多路复用等相关知识进行总结。
4.如果各位对专题内容有疑问 或 建议,欢迎留言哦~
功能模块少
源代码只保留与http 及核心功能代码,出于性能考虑,不像httpd 有那么丰富的插件。
代码模块化
易读,可进行二次改进。
8核心 16核心,多核密集计算、多线程,接入层中间件
双cpu、每个cpu有四个核心
不同worker 绑定不同核心 均匀分配,多个核心自动切换的模式,会带来核心切换资源消耗。
什么是CPU亲和?
把CPU核心和NGINX 工作进程绑定的方式,把每个worker进程固定在一个cpu
上执行,减少切换cpu的cache miss,获得更好的性能。
内核空间-用户空间数据拷贝模式
可以看到上图为nginx应用程序进程配合内核空间返回给用户请求静态文件的response过程
这种响应模式,需要进行 内核空间 与 应用进程 空间之间数据的拷贝,比较消耗性能。
内核空间零拷贝模式
直接通过内核空间进行数据的拷贝,sendfile利用带了linux在2.2 零拷贝传递模式
nginx对静态文件的处理能力超强的原因就是因为sendfile使用了内核空间零拷贝数据传递模式。