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