在優(yōu)化PHP的進(jìn)程數(shù)的時(shí)候我們首先要了解我們服務(wù)器執(zhí)行一個(gè)php使用的內(nèi)存
10年積累的網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先做網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有香洲免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
1: 查詢一個(gè)php占用的內(nèi)存方法
pmap $(pgrep php-fpm | head -1)
我這里查詢到的是
00002ba5d0bec000 4K rw-s- /dev/zero (deleted)
00002ba5d0bed000 4K rw-s- /dev/zero (deleted)
00007fffc568b000 80K rwx-- [ stack ]
00007fffc569f000 4K rw--- [ anon ]
00007fffc57fd000 12K r-x-- [ anon ]
ffffffffff600000 8192K ----- [ anon ]
total 309548K
大概30MB的樣子
我本身機(jī)器內(nèi)存是32G,那么理論上計(jì)算最大能承受php的并發(fā)是 32G/30MB=1092個(gè)
那么如果除去系統(tǒng)跟其他軟件的使用內(nèi)存大概算900個(gè)
2 :php-fpm的配置公式:pm.start_servers = min_spare_servers + (max_spare_servers - min_spare_servers) / 2
pm.max_children的計(jì)算方法,本機(jī)內(nèi)存/30兆每個(gè)為最大的限定值再適當(dāng)減小
相關(guān)參數(shù)解讀:
pm.max_children:靜態(tài)方式下開啟的php-fpm進(jìn)程數(shù)量。
pm.start_servers:動(dòng)態(tài)方式下的起始php-fpm進(jìn)程數(shù)量。
pm.min_spare_servers:動(dòng)態(tài)方式下的最小php-fpm進(jìn)程數(shù)量。
pm.max_spare_servers:動(dòng)態(tài)方式下的最大php-fpm進(jìn)程數(shù)量。
針對(duì)我的服務(wù)器情況調(diào)整這幾個(gè)值為(當(dāng)然我這邊是集群所以我啟動(dòng)300個(gè)已經(jīng)足夠了):
pm.max_children = 300
pm.start_servers = 155
pm.min_spare_servers = 10
pm.max_spare_servers = 300
###################################################
(備注:如果不按這個(gè)公式計(jì)算做配置多多少少會(huì)出現(xiàn)寫問(wèn)題,比如
seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 34 total children (這個(gè)很明顯是要你調(diào)節(jié)進(jìn)程數(shù))
child 1616 exited with code 0 after 619688.718148 seconds from start (一下三個(gè)好像都是提示執(zhí)行超時(shí))
child 14636 exited on signal 15 (SIGTERM) after 269249.100189 seconds from star
request: "POST /test.php") execution timed out (198.776247 sec), terminating
等等類似的報(bào)錯(cuò)
如果是ngixn做的前端代理會(huì)出現(xiàn)當(dāng)后端服務(wù)器出現(xiàn)類似問(wèn)題就會(huì)連接失敗提示沒在線的主機(jī)等等情況
no live upstreams while connecting to upstream, client
)
####################################################