亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP-FPM運行原理以及相關配置

2019-11-06 07:02:33
字體:
來源:轉載
供稿:網友

php-FPM運行原理以及相關配置 一.PHP-FPM運行原理 CGI 是 Web Server 與后臺語言交互的協議,有了這個協議,開發者可以使用任何語言處理 Web Server 發來的請求,動態的生成內容。但 CGI 有一個致命的缺點,那就是每處理一個請求都需要 fork 一個全新的進程,隨著 Web 的興起,高并發越來越成為常態,這樣低效的方式明顯不能滿足需求。就這樣,FastCGI 誕生了,CGI 很快就退出了歷史的舞臺。FastCGI,顧名思義為更快的 CGI,它允許在一個進程內處理多個請求,而不是一個請求處理完畢就直接結束進程,性能上有了很大的提高 至于 FPM (FastCGI PRocess Manager),它是 FastCGI 的實現,任何實現了 FastCGI 協議的 Web Server 都能夠與之通信。FPM 之于標準的 FastCGI,也提供了一些增強功能,具體可以參考官方文檔:PHP: FPM Installation。 FPM 是一個 PHP 進程管理器,包含 master 進程和 worker 進程兩種進程:master 進程只有一個,負責監聽端口,接收來自 Web Server 的請求,而 worker 進程則一般有多個 (具體數量根據實際需要配置),每個進程內部都嵌入了一個 PHP 解釋器,是 PHP 代碼真正執行的地方 從 FPM 接收到請求,到處理完畢,其具體的流程如下:

FPM 的 master 進程接收到請求 master 進程根據配置指派特定的 worker 進程進行請求處理,如果沒有可用進程,返回錯誤,這也是我們配合 Nginx 遇到502錯誤比較多的原因。 worker 進程處理請求,如果超時,返回504錯誤 請求處理結束,返回結果 FPM 從接收到處理請求的流程就是這樣了,那么 Nginx 又是如何發送請求給 fpm 的呢?這就需要從 Nginx 層面來說明了。

我們知道,Nginx 不僅僅是一個 Web 服務器,也是一個功能強大的 Proxy 服務器,除了進行 http 請求的代理,也可以進行許多其他協議請求的代理,包括本文與 fpm 相關的 fastcgi 協議。為了能夠使 Nginx 理解 fastcgi 協議,Nginx 提供了 fastcgi 模塊來將 http 請求映射為對應的 fastcgi 請求。

Nginx 的 fastcgi 模塊提供了 fastcgi_param 指令來主要處理這些映射關系,下面 Ubuntu 下 Nginx 的一個配置文件,其主要完成的工作是將 Nginx 中的變量翻譯成 PHP 中能夠理解的變量

除此之外,非常重要的就是 fastcgi_pass 指令了,這個指令用于指定 fpm 進程監聽的地址,Nginx 會把所有的 php 請求翻譯成 fastcgi 請求之后再發送到這個地址

二.PHP-FPM進程管理 php-fpm進程管理配置為pm參數,可以設置為靜態(static)和動態(dynamic)兩種。 詳細的配置參數有: pm.max_children:靜態方式下開啟的php-fpm進程數量。 pm.start_servers:動態方式下的起始php-fpm進程數量。 pm.min_spare_servers:動態方式下的最小php-fpm進程數量。 pm.max_spare_servers:動態方式下的最大php-fpm進程數量

靜態(static) 進程數自始至終都是pm.max_children指定的數量,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers配置將沒有作用。 對于內存比較吃緊,同時并發量不是很大的應用,可以考慮采用static的方式,這樣可以很好的控制php-fpm的所消耗的總內存數,讓系統更加 平穩運行。另外由于并發量很小,可以適當的把設置pm.max_requests小一些,以便讓php-fpm進程有機會重啟,從而釋放其占用的內存動態(dynamic) 進程數是動態的,最開始是pm.start_servers指定的數量,如果請求較多,則會自動增加,但不超過 pm.max_children指定的數量,同時保證空閑的進程數不小于pm.min_spare_servers,如果進程數較多,也會進行相應清理, 保證多余的進程數不多于pm.max_spare_servers。

那么,對于我們的服務器,選擇哪種執行方式比較好呢?事實上,跟Apache一樣,運行的PHP程序在執行完成后,或多或少會有內存泄露的問題。這也是為什么開始的時候一個php-fpm進程只占用3M左右內存,運行一段時間后就會上升到20-30M的原因了。

對于內存大的服務器(比如8G以上)來說,指定靜態的max_children實際上更為妥當,因為這樣不需要進行額外的進程數目控制,會提高效率。因為頻繁開關php-fpm進程也會有時滯,所以內存夠大的情況下開靜態效果會更好。數量也可以根據 內存/30M 得到,比如8GB內存可以設置為100,那么php-fpm耗費的內存就能控制在 2G-3G的樣子。如果內存稍微小點,比如1G,那么指定靜態的進程數量更加有利于服務器的穩定。這樣可以保證php-fpm只獲取夠用的內存,將不多的內存分配給其他應用去使用,會使系統的運行更加暢通。

對于小內存的服務器來說,比如256M內存的VPS,即使按照一個20M的內存量來算,10個php-cgi進程就將耗掉200M內存,那系統的崩潰就應該很正常了。因此應該盡量地控制php-fpm進程的數量,大體明確其他應用占用的內存后,給它指定一個靜態的小數量,會讓系統更加平穩一些?;蛘呤褂脛討B方式,因為動態方式會結束掉多余的進程,可以回收釋放一些內存,所以推薦在內存較少的服務器或VPS上使用。具體最大數量根據 內存/20M 得到。比如說512M的VPS,建議pm.max_spare_servers設置為20。至于pm.min_spare_servers,則建議根據服務器的負載情況來設置,比較合適的值在5~10之間。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品88a∨| 在线精品高清中文字幕| 97**国产露脸精品国产| 国产91ⅴ在线精品免费观看| 亚洲人成网在线播放| 欧美国产一区二区三区| 91久久久在线| 一区二区日韩精品| 久久久国产一区二区| 在线观看久久av| 97国产精品久久| 欧美在线视频免费观看| 精品国产一区二区三区久久久狼| 亚洲第一页自拍| 久久亚洲综合国产精品99麻豆精品福利| 欧美成年人在线观看| 亚洲国产天堂网精品网站| 亚洲偷欧美偷国内偷| 成人激情av在线| 视频在线一区二区| 亚洲天堂av网| 国产精品日韩av| 国产精品美乳在线观看| 欧美日韩免费区域视频在线观看| 国产成人精品一区二区三区| 国产精品久久一区主播| 欧美成人激情在线| 美女国内精品自产拍在线播放| 深夜福利国产精品| 精品国产一区二区三区久久久| 国产精品网红直播| 韩曰欧美视频免费观看| 久久99久久久久久久噜噜| 亚洲人成电影网站| 久久久亚洲精选| 亚洲激情在线视频| 亚洲精品欧美日韩专区| 精品久久久久久中文字幕| 亚洲精品www久久久久久广东| 91成人精品网站| 免费99精品国产自在在线| 欧美日韩国产限制| 亚洲成人精品久久久| 久久久久久国产精品美女| 欧美xxxx18国产| 欧美大荫蒂xxx| 一区二区在线视频播放| 在线视频欧美性高潮| 欧美激情在线狂野欧美精品| 国产自产女人91一区在线观看| 九九久久久久久久久激情| 日韩视频精品在线| 在线日韩精品视频| 国产精品入口尤物| 久久影视电视剧免费网站清宫辞电视| 国产精品自产拍在线观看中文| 中文字幕九色91在线| 亚洲97在线观看| 高清欧美性猛交xxxx| 精品国产区一区二区三区在线观看| 免费99精品国产自在在线| 日韩亚洲成人av在线| 国产精品日韩欧美综合| 国产日韩在线播放| 亚洲欧美综合精品久久成人| 欧美日韩高清在线观看| 韩日欧美一区二区| 日韩国产精品视频| 亚洲最大福利视频| 日韩有码视频在线| 国产精品一区二区久久久| 久久人人看视频| 久久久久久亚洲精品中文字幕| 久久国产精品亚洲| 国产精品精品久久久久久| 成人久久久久久| 91精品久久久久久久久久久久久久| 97久久精品人人澡人人爽缅北| 国产在线观看精品一区二区三区| 欧美激情一区二区三区在线视频观看| 国产精品美女久久久久av超清| 亚洲在线观看视频| 国产91精品久久久久久久| 欧美日韩激情视频8区| 亚洲综合中文字幕68页| 91网在线免费观看| 久久天天躁日日躁| 欧美性生交xxxxx久久久| 亚洲日本aⅴ片在线观看香蕉| 久久中文精品视频| 懂色aⅴ精品一区二区三区蜜月| 91国内免费在线视频| 日韩性xxxx爱| 久久成人18免费网站| 国产精品精品一区二区三区午夜版| 国产精品一区二区久久久久| 一区二区成人精品| 欧美最猛性xxxxx亚洲精品| 国产在线98福利播放视频| 国产激情久久久| 欧美精品免费看| 亚洲wwwav| 国产精品一区二区三区在线播放| 午夜精品视频网站| 伊人伊成久久人综合网站| 17婷婷久久www| 日韩a**站在线观看| 欧美最猛黑人xxxx黑人猛叫黄| 亚洲欧美在线第一页| 欧美激情精品久久久久久免费印度| 欧洲亚洲女同hd| 国产主播精品在线| 成人亚洲欧美一区二区三区| 亚洲人成电影在线观看天堂色| 精品国产区一区二区三区在线观看| 日本视频久久久| 成人av在线亚洲| 国产三级精品网站| 午夜精品久久久久久久男人的天堂| 久久夜色精品亚洲噜噜国产mv| 久久伊人色综合| 中文字幕欧美精品在线| 91香蕉亚洲精品| 日韩电影网在线| 国产精品偷伦免费视频观看的| 亚洲精品福利免费在线观看| 91av福利视频| 久久久久国产视频| 亚洲风情亚aⅴ在线发布| 91亚洲精品在线| 亚洲午夜久久久久久久| 一区二区三区美女xx视频| 国产精品第七影院| 国产精品久久久久久影视| 91精品视频免费看| 久久精品中文字幕免费mv| 日韩成人黄色av| 久久久www成人免费精品| 亚洲成人久久久久| 亚洲第一区第二区| 国产一区私人高清影院| 精品亚洲一区二区三区在线观看| 亚洲精品电影在线观看| 深夜福利一区二区| 北条麻妃在线一区二区| 69久久夜色精品国产69乱青草| 欧美国产日韩二区| 亚洲天堂第二页| 国产精品一区二区三区久久久| 欧美一级片久久久久久久| 91免费电影网站| 亚洲国产精品成人精品| 国产精品色午夜在线观看| 97国产一区二区精品久久呦| 国产精品久久久久久久久| 亚洲国内高清视频| 亚洲欧美在线播放| 欧美日韩成人免费| 欧美大尺度在线观看| 欧美电影在线播放| 国产欧美一区二区三区久久| 久久精品在线视频| 亚洲国产精品专区久久| 成人精品视频在线|