IO复用: MariaDB PerconaDB web :Nginx , LNMP, Memcached ,tomcat ,varnish www.nginx.org 官方站点
Nginx pronounced engine-x
HTTP服务器
反向代理 :reverse proxy
反向代理的协议
http
mail
netcraft 网站 web市场占有率
Nginx优势 : 高性能 稳定性 丰富的特性 简单配置 低资源消耗
多进程模型 进程切换 阻塞状态 不可中断睡眠 DMA 直接内存访问
C10K 单进程 :阻塞 多进程 :每个进程响应一个请求 进程量大。进程切换次数过多 每个进程的地址空间是独立,很多空间是重复的数据,所以内存使用效率较低 线程 :thread, Light Weight Process, LWP 每个线程响应一个请求 线程依然需要切换,切换较之进程轻量级 同一个进程的线程可以共享进程的诸多资源,比如打开的文件 对内存的需求较之进程略有下降 快速切换时会带来线程抖动 忙等 :自旋锁 Spin lock 闲等
多进程多线程模型: 多线程:n个请求 一个线程响应多个请求 select(1024) AIO :异步IO
同步通信 异步通信
多路IO,IO复用
IO Models :
阻塞IO
非阻塞IO
IO复用
信号驱动IO
异步IO
同步IO和异步IO
异步阻塞IO 又称为IO复用
阻塞IO具体模型详解:
非阻塞IO具体模型详解:
IO复用具体模型详解:
事件驱动IO:水平触发,边缘触发
数据准备完成后向进程通知
5种模型对比 :
epoll
/dev/poll
kqueue
mmap:内存映射 异步IO 实现起来比较复杂
IO:网络IO和磁盘IO httpd : MPM prefork :一个进程响应一个请求 ,1024 worker :一个线程响应一个请求,多线程,一个进程生成多个线程 event :基于事件驱动
Nginx 做反向代理 程序有局部性,数据有局部性 CDN 内容分发网络 依赖于智能DNS 内容路由 缓存路由 hadoop 大数据分析 异步结构 NoSQL 大量写操作时使用 模块化 架构师 拓展起来