nginx與php-fpm的運行方式?

nginx與php-fpm是不是以多進程多線程方式運行的?

Nginx 是非阻塞IO & IO複用模型,通過操作系統提供的類似 epoll 的功能,可以在一個線程裏處理多個客戶端的請求。
Nginx 的進程就是線程,即每個進程裏只有一個線程,但這一個線程可以服務多個客戶端。

PHP-FPM 是阻塞的單線程模型,pm.max_children 指定的是最大的進程數量,pm.max_requests 指定的是每個進程處理多少個請求後重啓(因爲 PHP 偶爾會有內存泄漏,所以需要重啓).
PHP-FPM 的每個進程也只有一個線程,但是一個進程同時只能服務一個客戶端。

大多數的 Linux 程序都傾向於使用進程而不是線程,因爲 Linux 下相對來說創建進程的開銷比較小,而 Linux 的線程功能又不是很強大。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章