摘要:當請求過來時,會傳遞給一個,然后立即可以接受下一個請求。這樣就避免了重復的勞動,效率自然是高。而且當不夠用時,可以根據配置預先啟動幾個等著,比如,當然空閑太多時,也會停掉一些,這樣就提高了性能,也節約了資源。這就是的對進程的管理。
對于cgi fastcgi php-fpm php-cgi的解釋,網上挺多的,可以百度查看,下面是我自己的理解
名詞術語:
1、web服務器 2、通信協議 3、進程、主進程、子進程 4、php解析器 CGI:Common Gateway Interface 公共網關接口,web服務器和腳本語言通信的一個標準、 接口、協議【協議】 FastCGI:CGI協議的升級版【協議】 PHP-CGI: 實現了CGI接口協議的PHP腳本解析器【程序】 PHP-FPM: 管理和調度php-cgi進程,進而實現了FastCGI接口協議的程序【程序】
webserver只能處理靜態文件,對于php這樣的動態腳本無能為力,只能交給php自己來處理, 于是有了下面這個流程:
但是上面架構有個性能問題,CGI對每個請求會parse一遍對應腳本的配置文件(如php.ini), 加載配置和擴展,初始化執行環境,性能非常差,所有有了下面的流程:
那么實現Fastcgi協議的程序,如PHP-FPM是怎么做的呢?首先,Fastcgi會先啟一個master進程,解析配置文件,初始化執行環境,然后再啟動多個worker進程,這個worker就是php-cgi。當請求過來時,master會傳遞給一個worker,然后立即可以接受下一個請求。這樣就避免了重復的勞動,效率自然是高。而且當worker不夠用時,master可以根據配置預先啟動幾個worker等著,比如20worker,當然空閑worker太多時,也會停掉一些,這樣就提高了性能,也節約了資源。這就是fastcgi的對進程的管理。
下面是php-fpm配置文件里面的對worker數量的配置項:
; The maximum number of processes FPM will fork. This has been design to control ; the global number of processes when using dynamic PM within a lot of pools. ; Use it with caution. ; Note: A value of 0 indicates no limit ; Default Value: 0 ; process.max = 128
那么最大的worker進程數就是128
更多的對FastCGI的解釋
fastcgi是基于cgi架構的擴展,他的核心思想就是在web server和具體cgi程序之間建立一個智能的可持續的中間層,統管cgi程序的運行,這樣web server只需要將請求提交給這個層,這個層再派生出幾個可復用的cgi程序實例,然后再把請求分發給這些實例,這些實例是可控的,可持續,可復用的,因此一方面避免了進程反復fork,另一方面又可以通過中間層的控制和探測機制來監視這些實例的運行情況,根據不同的狀況fork或者回收實例,達到靈活性和穩定性兼得的目的。
參考文檔
https://segmentfault.com/q/1010000000256516
http://blog.csdn.net/zhuanshenweiliu/article/details/46413241
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/21444.html
摘要:當請求過來時,會傳遞給一個,然后立即可以接受下一個請求。這樣就避免了重復的勞動,效率自然是高。而且當不夠用時,可以根據配置預先啟動幾個等著,比如,當然空閑太多時,也會停掉一些,這樣就提高了性能,也節約了資源。這就是的對進程的管理。 對于cgi fastcgi php-fpm php-cgi的解釋,網上挺多的,可以百度查看,下面是我自己的理解 名詞術語: 1、web服務器 2、通信協議 ...
摘要:工作原理首先先了解下常聽說的,,,到底是什么關系,幫助了解的工作原理協議協議用來確定例如,也就是內容分發服務器傳遞過來什么數據,什么樣格式的數據進程解釋器是的協議進程解釋器,每次啟動時,需要經歷加載文件初始化執行環境處理請求返 php工作原理 首先先了解下常聽說的cgi,php-cgi,fastcgi,php-fpm到底是什么關系,幫助了解php的工作原理 cgi協議 cgi協議用來確...
摘要:工作原理首先先了解下常聽說的,,,到底是什么關系,幫助了解的工作原理協議協議用來確定例如,也就是內容分發服務器傳遞過來什么數據,什么樣格式的數據進程解釋器是的協議進程解釋器,每次啟動時,需要經歷加載文件初始化執行環境處理請求返 php工作原理 首先先了解下常聽說的cgi,php-cgi,fastcgi,php-fpm到底是什么關系,幫助了解php的工作原理 cgi協議 cgi協議用來確...
閱讀 1330·2021-11-25 09:43
閱讀 739·2021-11-18 10:02
閱讀 2864·2021-09-07 09:59
閱讀 2748·2021-08-30 09:44
閱讀 2921·2019-08-30 13:17
閱讀 2305·2019-08-29 12:17
閱讀 1673·2019-08-28 17:57
閱讀 1281·2019-08-26 14:04