Nginx的I/O性能为什么比Apache更高效?

Nginx与Apache的I/O性能差距源于他们采用不同的I/O模型 Apache - select模型 Nginx - epoll模型 特点对比 select模型 (1)最大并发连接数限制,一个进程所打开的 FD (文件描述符)是有限制的,由 FD_SETSIZE 设置,默认值是 1024/2048 ,因此 Select 模型的最大并发数就被限制了 (2)效率问题,select 每次调用都会线性扫描全部的 FD 集合,这样效率就会呈现线性下降,所以,如果把 FD_SETSIZE 改大,效率会直接降低 (3)内核 / 用户空间 内存拷贝问题,如何让内核把 FD 消息通知给用户空间呢?在这个问题上 select 采取了内存拷贝方法 (4)产生阻塞 epoll模型 (1)最大并发连接的限制,上限是最大可以打开文件的数目,这个数字一般远大于 2048, 这个数字和系统内存关系很大 ,具体数目可以 cat /proc/sys/fs/file-max 察看 (2)效率提升,Epoll 最大的优点就在于它只管“活跃”的连接 ,而跟连接总数无关 (3)内存拷贝,Epoll 在这点上使用了“共享内存 ”,内存拷贝过程也省略了 (4)非阻塞

原文发布于微信公众号 - 性能与架构(yogoup)

原文发表时间:2015-08-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏TensorFlow从0到N

TensorFlow从0到1 - 1 - Hello, TensorFlow!

在学习任何新的编程语言时,我们都会在第一时间完成Hello World,以宣告自己开发环境的完美搭建。TensorFlow也不例外。TensorFlow充分考...

45030
来自专栏Java技术栈

浅析负载均衡的6种算法,Ngnix的5种算法。

常见的几种负载均衡算法 ? 1、轮询法 将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。 2、...

354120
来自专栏人工智能

分布式TensorFlow入坑指南:从实例到代码带你玩转多机器深度学习

通过多 GPU 并行的方式可以有很好的加速效果,然而一台机器上所支持的 GPU 是有限的,因此本文介绍了分布式 TensorFlow。分布式 TensorFlo...

27370
来自专栏Golang语言社区

【译】用Go实现一个静态博客生成器

静态站点生成器是一种工具,给一些输入(例如,markdown),使用HTML,CSS和JavaScript生成完全静态的网站。 为什么这很酷?一般来说,搭建一个...

66640
来自专栏逆向技术

逆向知识第八讲,if语句在汇编中表达的方式

           逆向知识第八讲,if语句在汇编中表达的方式 一丶if else的最简单情况还原(无分支情况) 高级代码: #include "stdafx...

27260
来自专栏小巫技术博客

Building TensorFlow on Android(译)

17910
来自专栏Java技术栈

Zookeeper面试题锦集

1、zookeeper是什么框架? 2、有哪些应用场景? 3、使用什么协议? 4、说说分布式一致性算法Paxos 5、说一说选举算法及流程 6、zookeepe...

50480
来自专栏IT派

什么是负载均衡?

IT派 - {技术青年圈} 持续关注互联网、大数据、人工智能领域 来源:xybaby 链接: http://www.cnblogs.com/xyb...

42670
来自专栏祝威廉

MLSQL 对Python的支持之路

Python是做机器学习框架一定要支持的。MLSQL很早就支持集成Python脚本做模型的训练和预测。

12330
来自专栏企鹅号快讯

浅析负载均衡的6种算法,Ngnix的5种算法

常见的几种负载均衡算法 ? 1、轮询法 将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。 2、...

37190

扫码关注云+社区

领取腾讯云代金券