IDO老徐,在深圳,某上市公司质量部负责人,干了十二年软件测试,公号"简尚" ,博客isTester.com ,关注「软件测试从业者综合能力提升」,微信957863300
转一段形象的阐述:为什么nginx+php 比Apache+PHP 并发量要大
上一篇 /
下一篇 2016-07-11 15:03:58
/ 个人分类:测试职业发展
51Testing软件测试网 wPap/J
`Q
Nginx+php平台的并发量(51225)要比Apache+php平台的并发量(21092)要大的.51Testing软件测试网bI?R6~KG
X
为什么Nginx的性能要比Apache高得多?
-O5E ]yu&Kn\C5_0这得益于Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O模型,而Apache则使用的是传统的select模型.
Ko7xq#r,Z0目前Linux下能够承受高并发访问的 Squid.Memcached都采用的是epoll网络I/O模型.51Testing软件测试网+U3?{f&p]![%}
*X Gq%X,G/^s051Testing软件测试网2qB[B-L*`
处理大量的连接的读写,Apache所采用的select网络I/O模型非常低效.
A4S"gs8]gQpe0下面用一个比喻来解析Apache采用的select模型和Nginx采用的epoll模型进行之间的区别:51Testing软件测试网;UE$m3O6q/Z;H:_ e*e
假设你在大学读书,住的宿舍楼有很多间房间,你的朋友要来找你.select版宿管大妈就会带着你的朋友挨个房间去找,直到找到你为止.51Testing软件测试网\Q7?4tmd[8P
而 epoll版宿管大妈会先记下每位同学的房间号,你的朋友来时,只需告诉你的朋友你住在哪个房间即可,不用亲自带着你的朋友满大楼找人.
O J(k"HHYFQ0如果来了 10000个人,都要找自己住这栋楼的同学时,select版和epoll版宿管大妈,谁的效率更高,不言自明.51Testing软件测试网0^&K3zt$~2gq8g"b&^
同理,在高并发服务器中,轮询I/O是最 耗时间的操作之一,select和epoll的性能谁的性能更高,同样十分明了.51Testing软件测试网4E
R1T;f
{lx{D
51Testing软件测试网h}Z/J!s