摘要:當請求過來時,會傳遞給一個,然后立即可以接受下一個請求。這樣就避免了重復的勞動,效率自然是高。而且當不夠用時,可以根據(jù)配置預先啟動幾個等著,比如,當然空閑太多時,也會停掉一些,這樣就提高了性能,也節(jié)約了資源。這就是的對進程的管理。
對于cgi fastcgi php-fpm php-cgi的解釋,網上挺多的,可以百度查看,下面是我自己的理解
名詞術語:
1、web服務器 2、通信協(xié)議 3、進程、主進程、子進程 4、php解析器 CGI:Common Gateway Interface 公共網關接口,web服務器和腳本語言通信的一個標準、 接口、協(xié)議【協(xié)議】 FastCGI:CGI協(xié)議的升級版【協(xié)議】 PHP-CGI: 實現(xiàn)了CGI接口協(xié)議的PHP腳本解析器【程序】 PHP-FPM: 管理和調度php-cgi進程,進而實現(xiàn)了FastCGI接口協(xié)議的程序【程序】
webserver只能處理靜態(tài)文件,對于php這樣的動態(tài)腳本無能為力,只能交給php自己來處理, 于是有了下面這個流程:
但是上面架構有個性能問題,CGI對每個請求會parse一遍對應腳本的配置文件(如php.ini), 加載配置和擴展,初始化執(zhí)行環(huán)境,性能非常差,所有有了下面的流程:
那么實現(xiàn)Fastcgi協(xié)議的程序,如PHP-FPM是怎么做的呢?首先,F(xiàn)astcgi會先啟一個master進程,解析配置文件,初始化執(zhí)行環(huán)境,然后再啟動多個worker進程,這個worker就是php-cgi。當請求過來時,master會傳遞給一個worker,然后立即可以接受下一個請求。這樣就避免了重復的勞動,效率自然是高。而且當worker不夠用時,master可以根據(jù)配置預先啟動幾個worker等著,比如20worker,當然空閑worker太多時,也會停掉一些,這樣就提高了性能,也節(jié)約了資源。這就是fastcgi的對進程的管理。
下面是php-fpm配置文件里面的對worker數(shù)量的配置項:
; 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進程數(shù)就是128
更多的對FastCGI的解釋
fastcgi是基于cgi架構的擴展,他的核心思想就是在web server和具體cgi程序之間建立一個智能的可持續(xù)的中間層,統(tǒng)管cgi程序的運行,這樣web server只需要將請求提交給這個層,這個層再派生出幾個可復用的cgi程序實例,然后再把請求分發(fā)給這些實例,這些實例是可控的,可持續(xù),可復用的,因此一方面避免了進程反復fork,另一方面又可以通過中間層的控制和探測機制來監(jiān)視這些實例的運行情況,根據(jù)不同的狀況fork或者回收實例,達到靈活性和穩(wěn)定性兼得的目的。
參考文檔
https://segmentfault.com/q/1010000000256516
http://blog.csdn.net/zhuanshenweiliu/article/details/46413241
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39264.html
摘要:當請求過來時,會傳遞給一個,然后立即可以接受下一個請求。這樣就避免了重復的勞動,效率自然是高。而且當不夠用時,可以根據(jù)配置預先啟動幾個等著,比如,當然空閑太多時,也會停掉一些,這樣就提高了性能,也節(jié)約了資源。這就是的對進程的管理。 對于cgi fastcgi php-fpm php-cgi的解釋,網上挺多的,可以百度查看,下面是我自己的理解 名詞術語: 1、web服務器 2、通信協(xié)議 ...
摘要:工作原理首先先了解下常聽說的,,,到底是什么關系,幫助了解的工作原理協(xié)議協(xié)議用來確定例如,也就是內容分發(fā)服務器傳遞過來什么數(shù)據(jù),什么樣格式的數(shù)據(jù)進程解釋器是的協(xié)議進程解釋器,每次啟動時,需要經歷加載文件初始化執(zhí)行環(huán)境處理請求返 php工作原理 首先先了解下常聽說的cgi,php-cgi,fastcgi,php-fpm到底是什么關系,幫助了解php的工作原理 cgi協(xié)議 cgi協(xié)議用來確...
摘要:工作原理首先先了解下常聽說的,,,到底是什么關系,幫助了解的工作原理協(xié)議協(xié)議用來確定例如,也就是內容分發(fā)服務器傳遞過來什么數(shù)據(jù),什么樣格式的數(shù)據(jù)進程解釋器是的協(xié)議進程解釋器,每次啟動時,需要經歷加載文件初始化執(zhí)行環(huán)境處理請求返 php工作原理 首先先了解下常聽說的cgi,php-cgi,fastcgi,php-fpm到底是什么關系,幫助了解php的工作原理 cgi協(xié)議 cgi協(xié)議用來確...
閱讀 2879·2021-11-24 09:39
閱讀 3130·2021-11-19 10:00
閱讀 1535·2021-10-27 14:17
閱讀 1811·2021-10-14 09:43
閱讀 961·2021-09-03 10:30
閱讀 3413·2019-08-30 15:54
閱讀 2728·2019-08-30 13:05
閱讀 2006·2019-08-30 11:02