NGINX的进程处理乱谈
来源:互联网 发布:苹果cms通用接口 编辑:程序博客网 时间:2024/05/24 01:15
服务器处理程序一般会采用fork模式, 每来一个新的连接时,会创建一个新的进程,新的进程中会重新创建一个socket,后续新连接的消息就由fork出来的这个进程处理.
NGINX架构修改了这种模式, 新连接过来时,还是由work进程来处理.
对于fork模式, 新建的进程如果采用阻塞模式,应该是性能更高,因为在没有报文时,该进程不会被调度.
而同一个进程处理多个连接,就必须抛弃阻塞模式,因为阻塞模式会阻塞进程处理其他的连接,同时如果select的话, 可能也不是最佳选择,首先select支持fd的数目有限,如果需要支持更多的fd,还需要修改linux系统头文件,还有select当支持fd过多时,性能很低, 所以效率较高的处理方式就是epoll.
linux创建进程的开销很大,并且也占用相当多的资源, 当linux进程变多时, linux进程调度开销也很大.
nginx采用一个进程处理多个连接就减少了上述开销,较少了连接的处理时间和资源消耗.
nginx考虑非常细致, 在多核上,为了减少因为work进程切换到不同核上带来的cache miss开销, nginx为work增加了核绑定处理.
nginx的事件驱动对性能提升也很大.
0 0
- NGINX的进程处理乱谈
- 处理TextView 文字排版乱的文体,
- Nginx源码分析 - 主流程篇 - 多进程的惊群和进程负载均衡处理
- 乱乱的桌面
- 乱乱的内心
- 乱乱的,无题
- nginx 进程的类型
- nginx的进程模型
- nginx的进程模型
- Nginx的进程模型
- nginx的进程模型
- nginx的进程模型
- Nginx服务器的进程
- Nginx多进程并发连接处理模型
- NGINX单进程服务器主处理流程
- Nginx----事件处理机制及进程模型
- Nginx----事件处理机制及进程模型
- 21.Nginx工作进程之处理函数
- Android OpenGL 教程 第五课
- 创建线程的方法二
- 黑马程序员--继成小结
- 黑马程序员_07单例设计模式
- Android OpenGL 教程 第六课
- NGINX的进程处理乱谈
- 废墨归零清零软件的博客
- Web高性能读书笔记
- FusionCharts 2D帕累托图
- 2.3 python中的变量和赋值 [python入门教程]
- 最近的想法
- 批处理搜索文件
- 马上Go 1.0
- deepin2013安装JDK1.7