為什么 Nginx 比 Apache 更牛叉?
閱讀本文大概需要 6 分鐘。
來自:codebay.cn/post/8557.html
一、Apache三種工作模式 1、prefork的工作原理 2、worker的工作原理 3、event 基于事件機(jī)制的特性 二、如何提高Web服務(wù)器的并發(fā)連接處理能力 三、Nginx優(yōu)異之處 四、Nginx 工作原理 五、Nginx 的誕生主要解決C10K問題 1、select模型:(apache使用,由于受模塊等限制,用的不多); 2、poll:poll是unix沿用select自己重新實(shí)現(xiàn)了一遍,唯一解決的問題是poll 沒有最大文件描述符數(shù)量的限制; 3、epoll模型:(Nginx使用)
15M*10=150M),開啟的64個(gè)php-cgi進(jìn)程消耗1280M內(nèi)存(20M*64=1280M),加上系統(tǒng)自身消耗的內(nèi)存,總共消耗不到2GB內(nèi)存。如果服務(wù)器內(nèi)存較小,完全可以只開啟25個(gè)php-cgi進(jìn)程,這樣php-cgi消耗的總內(nèi)存數(shù)才500M。一、Apache三種工作模式
prefork: 多進(jìn)程,每個(gè)請(qǐng)求用一個(gè)進(jìn)程響應(yīng),這個(gè)過程會(huì)用到select機(jī)制來通知。 worker: 多線程,一個(gè)進(jìn)程可以生成多個(gè)線程,每個(gè)線程響應(yīng)一個(gè)請(qǐng)求,但通知機(jī)制還是select不過可以接受更多的請(qǐng)求。 event: 基于異步I/O模型,一個(gè)進(jìn)程或線程,每個(gè)進(jìn)程或線程響應(yīng)多個(gè)用戶請(qǐng)求,它是基于事件驅(qū)動(dòng)(也就是epoll機(jī)制)實(shí)現(xiàn)的。
1、prefork的工作原理
2、worker的工作原理
3、event 基于事件機(jī)制的特性
二、如何提高Web服務(wù)器的并發(fā)連接處理能力
三、Nginx優(yōu)異之處
四、Nginx 工作原理
五、Nginx 的誕生主要解決C10K問題
1、select模型:(apache使用,由于受模塊等限制,用的不多);
2、poll:poll是unix沿用select自己重新實(shí)現(xiàn)了一遍,唯一解決的問題是poll 沒有最大文件描述符數(shù)量的限制;
3、epoll模型:(Nginx使用)
推薦閱讀:
Java8異步利器:CompletableFuture全網(wǎng)最全使用教程
互聯(lián)網(wǎng)初中高級(jí)大廠面試題(9個(gè)G) 內(nèi)容包含Java基礎(chǔ)、JavaWeb、MySQL性能優(yōu)化、JVM、鎖、百萬并發(fā)、消息隊(duì)列、高性能緩存、反射、Spring全家桶原理、微服務(wù)、Zookeeper......等技術(shù)棧!
?戳閱讀原文領(lǐng)??! 朕已閱
評(píng)論
圖片
表情


