Nginx

为什么nginx那么优秀?
多进程充分使用多核(比如多个进程同时accept)
网络处理:异步,非阻塞,使用epoll
c语言
大量细节处的优化。

1. 多进程架构

master将充当监控进程,而由主进程fork()出来的子进程则充当工作进程。
worker进程的主要任务是完成具体的任务逻辑。其主要关注点是与客户端或后端真实服务器之间的数据可读/可写等I/O交互事件。work进程数量一般配置为cpu个数。
每个worker都有自己的epoll,epoll只添加本进程连接的IO事件。每个worker进程都会处理accept事件,某个worker accept某个连接之后,该连接的后续IO由该进程处理。

2. 惊群

Epoll之惊群

3. 连接架构

负载均衡和多进程处理连接参见:
Epoll之惊群

3. 进程锁

  1. mmap锁
  2. 文件锁
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容