Nginx 是非阻塞IO & IO複用模型,經過操做系統提供的相似 epoll 的功能,能夠在一個線程裏處理多個客戶端的請求。
Nginx 的進程就是線程,即每一個進程裏只有一個線程,但這一個線程能夠服務多個客戶端。php
PHP-FPM 是阻塞的單線程模型,pm.max_children
指定的是最大的進程數量,pm.max_requests
指定的是每一個進程處理多少個請求後重啓(由於 PHP 偶爾會有內存泄漏,因此須要重啓).
PHP-FPM 的每一個進程也只有一個線程,可是一個進程同時只能服務一個客戶端。nginx
大多數的 Linux 程序都傾向於使用進程而不是線程,由於 Linux 下相對來講建立進程的開銷比較小,而 Linux 的線程功能又不是很強大。多線程