nginx是如何實現高效能的?
1、事件驅動模型
基於非同步及非阻塞的事件驅動模型,可以說是Nginx 得以獲得高並發、高效能的關鍵因素。這一點上和 Netty 類似,底層都是使用的 BSD kqueue、Linux epoll 和 Solaris event ports。
2、多進程機制
使用多進程的好處有兩點:
(1)進程之間不共享資源,不需要加鎖,減少了使用鎖對效能造成的影響,同時降低程式設計的複雜度,降低開發成本。
(2)採用獨立的進程,可以讓進程互相之間不會影響,如果一個進程發生異常退出時,其它進程正常工作,master 進程則很快啟動新的worker 進程,確保服務不會中斷,從而將風險降到最低。
3、記憶體池
為了避免記憶體碎片,減少向作業系統申請記憶體的次數、降低各個模組的開發複雜度,Nginx 設計了簡單的記憶體池,它的作用主要是把多次向系統申請記憶體的操作整合成一次,這大大減少了CPU 資源的消耗,同時減少了記憶體碎片。
4、模組化設計
高度模組化的設計是 Nginx 的架構基礎。 Openresty 就是在 Nginx 上引入了 lua 等第三方模組,讓擴充功能更加方便了。
推薦教學:nginx使用教學
#以上是nginx是如何實現高效能的的詳細內容。更多資訊請關注PHP中文網其他相關文章!