猿学习随笔-生活工作点滴

NGINX学习笔记-架构

2019-07-14  本文已影响2人  IBoya

Nginx的请求处理流程

image.png

Nginx进程结构

image.png

为什么nginx使用多进程而不使用多线程

线程之间共享同一个地址空间,所以当一个第三方模块引发了一个地址空间导致的段错误时,在地址越界出现时,就会导致整个nginx进程全部挂掉

Nginx进程管理信号

image.png

Nginx reload 流程

image.png
image.png

老的worker在异常情况下可能不会退出,新版本中提供worker_shutdown_timeout,

Nginx 热升级流程

image.png image.png

优雅的关闭worker进程

image.png

当在第4步 循环关闭连接时达到worker_shutdown_timeout 设置的时间时 后面的连接会直接关闭

网络传输


chuan shu image.png image.png

Nginx 事件循环

image.png

为什么nginx 不能容忍三方模块长时间占用大量的cpu进行计算

epoll的优劣和原理

image.png image.png

请求切换

image.png

每次进程切换 cpu消耗的时间大约5微妙

时间片和优先级

阻塞与非阻塞

image.png image.png

模块

image.png image.png image.png

连接池

image.png image.png image.png

所有worker进程协同工作的关键

image.png image.png image.png image.png

Nginx 容器

image.png image.png image.png

bucket size 对齐
主流cpu l1 l2 l3 缓存

红黑树

image.png image.png image.png image.png
上一篇下一篇

猜你喜欢

热点阅读