为什么nginx那么优秀?
多进程充分使用多核(比如多个进程同时accept)
网络处理:异步,非阻塞,使用epoll
c语言
大量细节处的优化。
1. 多进程架构
master将充当监控进程,而由主进程fork()出来的子进程则充当工作进程。
worker进程的主要任务是完成具体的任务逻辑。其主要关注点是与客户端或后端真实服务器之间的数据可读/可写等I/O交互事件。work进程数量一般配置为cpu个数。
每个worker都有自己的epoll,epoll只添加本进程连接的IO事件。每个worker进程都会处理accept事件,某个worker accept某个连接之后,该连接的后续IO由该进程处理。
2. 惊群
3. 连接架构
负载均衡和多进程处理连接参见:
Epoll之惊群
3. 进程锁
- mmap锁
- 文件锁
网友评论