Nginx在主流硬件上的并發數為十萬,網絡處理方面的領先地位,歸功于突破性的事件驅動架構。
Nginx在每顆內核上創建一個工作進程,有效利用硬件資源。
在單個工作進程中交替處理多個連接,應對突如其來的網絡流量。
Nginx資源管理
Nginx使用狀態機管理流量。
非阻塞事件驅動架構,能同時調度多個狀態機,支持不停機升級。
NGINX進程模型
主進程
Nginx有一個主進程,用于執行特權操作,如讀取配置和綁定端口。
工作進程
多個工作進程和輔助進程。
在四核服務器上,nginx主進程會創建四個工作進程,及若干緩存輔助進程,管理磁盤上的內容緩存。
任何unix應用程序的基礎都是線程/進程,linux上線程和進程大致相同,區別在于共享內存的程度。
線程/進程是一組獨立指令,操作系統可用一顆cpu內核運行它。
大多復雜的應用程序,并行執行多個線程/進程有兩個原因:
1、充分利用多核計算,讓并行執行操作變容易。
2、充分利用多顆cpu內核進行計算,實現并行操作。
進程/線程對資源的消耗
不管線程還是進