Kitura的多線程

在Nginx中,由Master進程管理多個Worker進程,而每一個連接是由一個Worker進程處理的。Nginx沒有像PHP-FPM那樣才用Master進程分發(fā)請求,而是由操作系統(tǒng)內(nèi)核機制完成(內(nèi)置負載均衡算法),再通過Mutex來避免“驚群”現(xiàn)象。

Worker進程的數(shù)量一般會和機器CPU核數(shù)一致。每個進程通過Reactor的事件處理機制,實現(xiàn)了循環(huán)處理多個準備好的事件。這樣處理的優(yōu)點在于無需創(chuàng)建線程,沒有上下文切換,最大化利用CPU。這樣處理方式的缺點在于,Reactor是同步的處理方式,因此服務器在處理長時間IO操作時會阻塞其他鏈接。

Nginx在1.7.11中引入了AIO線程池技術(shù),如此大文件可以用AIO線程池,小文件可以直接sendfile。


Kitura利用了Apple的GCD來管理線程池,實現(xiàn)高并發(fā)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 第一章 Nginx簡介 Nginx是什么 沒有聽過Nginx?那么一定聽過它的“同行”Apache吧!Ngi...
    JokerW閱讀 33,012評論 24 1,002
  • Nginx簡介 解決基于進程模型產(chǎn)生的C10K問題,請求時即使無狀態(tài)連接如web服務都無法達到并發(fā)響應量級一萬的現(xiàn)...
    魏鎮(zhèn)坪閱讀 2,205評論 0 9
  • Q2:我有款產(chǎn)品上架已經(jīng)3周了,剛做了淘客900單(本來預算是500單的),請問我該怎么維護淘客進來的流量?怎么做...
    無趣的網(wǎng)蟲閱讀 191評論 0 0

友情鏈接更多精彩內(nèi)容