2 回答

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊
PHP是屬于多進(jìn)程模型
在PHP開啟進(jìn)程的時(shí)候,就會(huì)啟動(dòng)配置的marster進(jìn)程及相應(yīng)的配置數(shù)的worker進(jìn)程,如:
root 1051 0.0 0.2 274644 5588 ? Ss 2月19 2:57 php-fpm: master process (/usr/local/php/etc/php-fpm.conf) www 1063 0.0 0.8 282620 15744 ? S 2月19 0:42 php-fpm: pool www www 1065 0.0 0.7 281080 13724 ? S 2月19 0:41 php-fpm: pool www www 1071 0.0 0.7 280824 14092 ? S 2月19 0:40 php-fpm: pool www www 1072 0.0 0.6 279536 12836 ? S 2月19 0:44 php-fpm: pool www www 1076 0.0 0.7 281080 14328 ? S 2月19 0:41 php-fpm: pool www www 1077 0.0 0.7 280828 14124 ? S 2月19 0:42 php-fpm: pool www www 1083 0.0 0.7 281084 14440 ? S 2月19 0:41 php-fpm: pool www
php-fpm master進(jìn)程負(fù)責(zé)創(chuàng)建和管理woker進(jìn)程,同時(shí)負(fù)責(zé)監(jiān)聽listen連接,master進(jìn)程是多路復(fù)用的;woker進(jìn)程負(fù)責(zé)accept請(qǐng)求連接,同時(shí)處理請(qǐng)求,一個(gè)woker進(jìn)程可以處理多個(gè)請(qǐng)求(復(fù)用,不需要每次都fork一個(gè)woker進(jìn)程),但一個(gè)woker進(jìn)程一次只能處理一個(gè)請(qǐng)求。
至于worker進(jìn)程的配置,你可以再詳細(xì)去了解一下。

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊
PHP-FPM下,一個(gè)進(jìn)程同一時(shí)刻只能處理一個(gè)請(qǐng)求,請(qǐng)求結(jié)束后不會(huì)關(guān)閉進(jìn)程,但進(jìn)程會(huì)釋放資源。
你可以這樣理解,每來(lái)一個(gè)請(qǐng)求,PHP-FPM的工作進(jìn)程會(huì)調(diào)用內(nèi)置的PHP解釋器執(zhí)行腳本處理請(qǐng)求,完成后釋放資源接著處理下一個(gè)請(qǐng)求,但工作進(jìn)程本身是支持后臺(tái)常駐的。
另外,如果PHP跑在Swoole下,則PHP邏輯是常駐內(nèi)存的,即PHP里的全局資源,包括定義的全局變量、函數(shù)、類,則都是常駐內(nèi)存的。
- 2 回答
- 0 關(guān)注
- 653 瀏覽
添加回答
舉報(bào)