Nginx对Apache的优势

  我们知道apache 已经出现很多年,因为其出色的性能,在市场上占据半壁江山。但如今Nginx引起了行业的关注。

  Nginx中每一个worker进程基本上对应cpu的一个核,这同时就是同apache最大的不同之处。Apache中的每一个进程在一个时刻只能处理一个请求,因此对Apache来说,如果发生高并发的事件(即处理器处理非常多的请求)时,就应该配置更多的进程或线程;与此同时我们知道,操作系统在进程或线程间切换时需要在寄存器缓存数据等消耗大量资源的操作,这消耗了不少对处理事件无关的资源和时间。但nginx却同apache有很大不同,Nginx的master进程只负责管理worker进程,worker进程都是单线程的进程,其他事件一律不管,而处理请求的事情则交给worker来处理,当worker进程阻塞或死掉,master进程会fork出新进程来出处理。这样,因为每个worker进程和一个cpu的核心相关联,worker进程对请求数量的处理仅仅局限在服务器的内存的大小,进程间切换所带来的资源消耗代价是最少的。这也是Nginx在处理高并发的请求时表现更加优异的原因。

posted @ 2015-10-12 21:39  Dormant  阅读(318)  评论(0编辑  收藏  举报