We're sorry but nginx-community doesn't work properly without JavaScript enabled. Please enable it to continue.
开源社区
首页
文章
问答
专栏
文档
发现更多
软件下载
三方插件
技术支持
电子书
公开课
社区贡献榜
关于我们
登录
注册
NGINX
负载均衡
JavaScript
NGINX UNIT
Kubernetes
微服务
容器
nginx系列
WAF
node.js
Go(编程语言)
服务网格(Service Mesh)
HTTP/3
版本发布
# 进程模型
暂无描述
关注标签
3人关注
文章
问答
排序
热门
最新
陶辉
发布于2020-09-16 09:31
都是事件驱动,为什么Nginx的性能远高于Redis?
谈到Redis缓存,我们描述其性能时会这么说:支持1万并发连接,几万QPS。而我们描述Nginx的高性能时,则会宣示:支持C10M(1千万并发连接),百万级QPS。Redis与Nginx同样使用了事件驱动、异步调用、Epoll这些机制,为什么Nginx的并发连接会高出那么多呢?(本文不讨论Redis分布式集群)这其实是由进程架构决定的。为了让进程占用CPU的全部计算力,Nginx充分利用了分时操作系统的特点,比如增加CPU时间片、提高CPU二级缓存命中率、用异步IO和线程池的方式回避磁盘的阻塞读操作等等,只有清楚了Nginx的这些招数,你才能将Nginx的性能最大化发挥出来。为了维持Worker进程间的负载均衡,在1.9.1版本前Nginx使用互斥锁,基于八分之七这个阈值维持了简单、高效的基本均衡。而在此之后,使用操作系统提供的多ACCEPT队列,Nginx可以获得更高的吞吐量。本文将会沿着高性能这条主线介绍Nginx的Master/Worker进程架构,包括进程间是如何分担流量的,以及默认关闭的多线程模式又是如何工作的。同时,本文也是Nginx开源社区基础培训系列课程第一季,即6月1
点赞
10
浏览
2k
发表文章
提问
社区达人
成为达人
相关文章
保持联系
微信公众号
加入微信群
获取商业支持
了解商业产品和专业支持服务
加入邮件列表
向开发组提交代码或反馈意见